我创建了一个功能的OOP程序,使用一堆类,我收到了一堆没有意义的错误。我正在开发一个Windows VC++ 2008项目,并且在开始时我尝试了不同的实现和头文件。当我试图例如使 object1.cpp错误时分裂实施和标题
#ifndef Object1_cpp
#define Object1_cpp
#include "Object1.h"
Object1::Object1(){
...
}
Object1::~Object1(){
...
}
....
#endif
object1.h
#ifndef Object1_H
#define Object1_h
class Object1{
public: Object1();
public: ~Object1(); // line 39 of object1.h
...
};
#endif
Main.cpp的
#include "object1.cpp"
有时它返回的
1>c:...\object1.h(39) : error C2059: syntax error : '('
1>c:...\object1.h(39) : error C2238: unexpected token(s) preceding ';'
错误
,因为它是不抱怨构造函数,唯一想到的就是表示析构函数的'〜'。当我把.H出来的画面改变的.cpp的是
#ifndef Object1_H
#define Object1_h
class Object1{
public: Object1::Object1();
public: Object1::~Object1();
...
};
#endif
或
#ifndef Object1_H
#define Object1_h
class Object1{
public: Object1();
public: ~Object1();
...
};
#endif
它编译罚款。我不明白。当我在其他编译器上做过类似的工作时,它工作正常,但它不在这里。 目前该程序功能齐全,但我忽略.h文件的存在,并在.cpp文件中执行所有操作。编译器似乎会抛出一个表示析构函数的Til-de操作符的问题。这只是问题的一个例子,当我尝试分离实现并转发引用时,它会出现在我的所有类中。
找到解决办法。显然我的队友之一所使用的相同的#define在他的文件之一(因为它是有道理的,但并不像被要求约定文件名)
你不每个功能都需要'public:'。在'public:'之后,所有声明的函数和变量都是公共的,直到范围被改变(例如'private:'或'protected:')。 – 2012-01-31 07:48:39
界定公共,私有和保护的每一件事情其实来自我用java的经验,但无论编译器不会造成任何问题,而且是一个子集标准不是主。如果是这样的问题,那么,当我在一个文件让他们为什么会工作,而不是给定的地址问题的答案的头 – gardian06 2012-01-31 12:21:49
非。他们只是风格习惯的修辞。 – gardian06 2012-01-31 12:33:54