【发布时间】:2015-11-30 12:56:17
【问题描述】:
我有一个项目,其中包括 2 个文件:main.cc 和 header1.h。当 main.cc 实例化一个类“className”并调用它的成员函数时,头文件包含该类的定义。
main.cc:
#include <header1.h>
int main(){
className classobject();
classobject.function1();
...
}
}
header1.h:
class className{
public:
className();
void function1();
...
};
double className::function1(){
double function2(){
...
}
}
有了这个,我遇到了一个错误,上面写着:“函数定义不应该放在'{'标记之前。
所以我决定把function2的定义放到类之外,放到一个独立的.h文件中。这样,我的项目将包含3个文件,分别是:main.cc、head1.h和function2.h文件:
main.cc:
#include <head1.h>
int main(){
className classobject;
void classobject.function1();
...
}
head1.h:
#include <function2.h>
class className{
double function2();
...
}
function2.h:
double function2(){
...
}
虽然function2也可以定义为类的成员函数,这样在类里面就可以移出function1,但我想知道上面的处理是否合法。另外,头文件的创建是否有一些由用法建立的隐含规则(常见处理)?
谁能给一些cmets?提前致谢。
【问题讨论】:
-
我更愿意让 fucntion2() 成为 className 的私有成员。
-
类定义后缺少分号。
-
您应该使用
.cpp文件来定义类方法
标签: c++ function class scope header