在50 ... 60个文件之间传递类对象

时间:2012-08-15 07:34:06

标签: c++ file oop struct instance

我用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等。你有什么想法吗?

1 个答案:

答案 0 :(得分: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(就像这里的情况一样)。