C++类的定义和声明的问题本帖最后由 u010188055 于 2013-06-13 15:43:32 编辑假如我的b.cpp和c.cpp都仅包
C++类的定义和声明的问题
本帖最后由 u010188055 于 2013-06-13 15:43:32 编辑 假如我的b.cpp和c.cpp都仅包含a.h,我希望在a.h中声明一个tmp类然后在b.cpp中定义它,并在c.cpp中使用它
我现在的代码大概是这样的:
// a.h
……
extern class tmp;
// b.cpp
class tmp {
public:
……
private:
……
}
// c.cpp
tmp t;
编译后提示“extern ”: 没有声明变量时忽略“tmp”的左侧
如果我把a.h的extern去掉,又提示c.cpp中的tmp未定义
我不想把tmp类中的变量定义写在a.h中,我想将它的变量和函数定义全写在b.cpp中,请问如何实现? C++ 类 声明 定义 多文件
[解决办法]
没办法, 类定义是内部链接的, 必须写在 .h 里才行.
[解决办法]
做不到,编译器编译期会把.h文件的内容copy过来
如果c中不包括b中的定义,语法就不对
