我第一次完成了需要面向对象程序的任务。我开始研究(相当大而复杂)的项目,并且在链接多个类文件及其相关的.h文件时遇到了一些障碍。基本上我一直得到“类的多重定义”错误,即使我有我的包括警卫而没有全局变量。我不会发布我的代码本身,但这是一个简单的例子,给我一个相同的错误:
//Runner file.
#include "Class1.cpp"
int main(){
Class1 classtest();
return 0;
}
-
//Class1.h
#ifndef CLASS1_H
#define CLASS1_H
class Class1
{
public:
Class1();
};
#endif // CLASS1_H
-
//Class1.cpp
#include "Class1.h"
#include <iostream>
#include "Class2.cpp"
using namespace std;
Class1::Class1()
{
cout << "Created Test Class1";
Class2 testClass();
}
然后几乎相同的Class2文件
//Class2.h
#ifndef CLASS2_H
#define CLASS2_H
class Class2
{
public:
Class2();
};
#endif // CLASS2_H
-
#include "Class2.h"
#include <iostream>
using namespace std;
Class2::Class2()
{
cout << "Created Class 2";
}
然后整个事情产生大约1.4公尺的错误,其中大部分是以下格式:
obj\Debug\Runner.o||In function
的Class2' :| C:\用户\拾音\桌面\ C ++ \ ObjectOTesting \ Class2.cpp | 6 |
Class2::Class2()'|
obj\Debug\Class2.o:C:\Users\MikeD\Desktop\C++\ObjectOTesting\Class2.cpp|6|first defined here|
我知道我在这里做了一些愚蠢的事情,但我还没弄清楚到底是什么。任何帮助都非常感谢。
答案 0 :(得分:2)
你没有#include
CPP文件 - 你编译它们。 CPP文件又是#include
H个文件。