- 论坛徽章:
- 0
|
示例代码如下:
main.cpp
#include <iostream>
#include "storageManager.h"
#include "storageManager.cpp"
using namespace std;
int main(int argc, char *argv[])
{
Adder add(8, 6);
cout<<"(8 + 6) = "<<add.add()<<endl;
cin.get();
return 0;
}
storageManager.h
#ifndef storageManager_h_
#define storageManager_h_
class Adder
{
public:
Adder(int a, int b):_a(a), _b(b){};
int add(void);
private:
int _a, _b;
};
#endif
storageManager.cpp
#include "storageManager.h"
int Adder::add(void)
{
return (_a + _b);
}
用dev c++ 编译出现:
multiple definition of `Adder::add()'
VC编译出现错误:
public: int __thiscall Adder::add(void)" (?add@Adder@@QAEHXZ) already defined in main.obj
我的这段代码不是可以防止重包含和重定义吗?为什么还会出现上述的错误?
#ifndef storageManager_h_
#define storageManager_h_
另外,我在dev-C++里面把工程属性里把文件storageManager.cpp 的“连接时包含”选项去掉 就没问题了。
请高手指教。 |
|