use*_*635 2 c++ declaration include
我有4个类:Server.cpp Logger.cpp Util.cpp Crypto.cpp
类Server使用对象Util.该程序工作正常,但现在我需要在Logger类中使用对象Util.但是当我输入代码#include"Util.cpp"时,g ++给我一个错误,因为我无法再次调用该对象.Eclipse告诉我关于类Util的"重新定义"和"先前声明".
我怎么解决这个问题?
您不应将源cpp文件包含在另一个cpp文件中.
这基本上违反了一个定义规则,导致重新定义错误.
Util
在要创建其对象的任何类中包含具有类定义的头文件.
基本上,您的代码应该以这种方式组织(例外:模板化代码):
Util.h ----------->包含类的定义Util
充当接口
Util.cpp ----------->包含类的实现Util
作为实现
每当你想Util
在cpp文件中包含的任何cpp文件中创建类的对象时,Util.h
编译器都知道类的定义Util
.
例如:
Server.cpp
想要创建一个对象,Util
那么你Server.cpp
应该包括Util.h
:
#include "Util.h"
Run Code Online (Sandbox Code Playgroud)
另外,不要忘记在头文件中添加Include警卫.
如果使用Util
由另一个源/头文件被限制为创建一个指针Util
,那么你不需要包含头文件,你只需要转发声明的Util
类.
归档时间: |
|
查看次数: |
127 次 |
最近记录: |