【问题标题】:Class redefinition c++ [duplicate]类重新定义c ++ [重复]
【发布时间】:2014-04-23 14:58:47
【问题描述】:

我有一个 c++ 项目,它有一个名为 A 的类。 我还有一个头文件,叫做Definitions.h

我在头文件中写了如下代码:

A* aClass;

在应用程序的主要部分,我写道:

aClass = new A();

这给了我使用它的其他类对A 类的重新定义错误。

所以上网查了一下,发现应该是在减速中加了extern关键字,所以把头文件的减速类修改成这样:

extern A* aClass;

现在我收到 LNK2001 错误。

我错过了什么?

【问题讨论】:

  • 能否给出完整的代码示例
  • 通过额外的 A* aClass 使其成为外部;在单个翻译单元(源文件)中
  • 太棒了!那行得通。非常感谢。

标签: c++ class extern redefinition


【解决方案1】:

我需要查看您的代码才能完全了解错误可能出在哪里,但您可以试试这个:

在标题中:

extern A* aClass;

在main.cc中,main函数之前:

A* aClass;

在主函数内部:

int main()
{
...
aClass = new A();
...
}

希望对您有所帮助!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-12-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多