0

我用 C++ 编写 OOP 软件,我需要在文件之间传递我的类的实例,50...60 个文件。不幸的是,我使用了一个使用回调函数而不是对象的库。

问题: 我在 cpp 文件之间使用了一些状态,例如 struct,但出现multiple definition错误或... 如何在 50...60 个类之间传递每个类的一个实例?

Class A{}; A *instanceA = new A();
Class B{}; B *instanceB = new B();
.
.
.
Class Z{}; Z *instanceZ = new Z();

我需要在文件之间传递 intaanceA、intanceB 等。你有什么主意吗?

4

1 回答 1

2

我怀疑您在头文件中定义了实例并将其包含在多个文件中:

A.h

class A{};

A* instanceA = new A();

b.cppc.cpp两者#include <A.h>,导致多重定义错误。

要更正,您可以使用在头文件extern声明实例并将其定义在一个.cpp文件中:

A.h

class A{};
extern A* instanceA;

A.cpp

A* instanceA = new A();

另一个原因是extern在头文件中使用但instanceA在多个.cpp文件中定义(就像这里的情况一样)。

于 2012-08-15T07:37:12.840 回答