我已经完成了需要面向对象程序的第一个任务。我开始研究(相当大和复杂的)项目,在链接多个类文件及其关联的 .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:\Users\MikeD\Desktop\C++\ObjectOTesting\Class2.cpp|6| 多重定义Class2::Class2()'|
obj\Debug\Class2.o:C:\Users\MikeD\Desktop\C++\ObjectOTesting\Class2.cpp|6|first defined here|
I KNOW I'm doing something stupid here, but I haven't been able to find out what exactly. Any help is really appreciated.