此错误中的 MSVS2010 中的“数据变量”是什么意思?我以为我正在声明一个在我的代码中其他地方定义的符号。
错误 C2365:“g_surf”:重新定义;先前的定义是“数据变量”
显然这可能意味着一个 int 或 char。
我遵循了一个工作示例。
在声明符号之前,我必须包含类的定义。
#include classdef.h
我使用 extern 关键字在 stdafx.h 中声明了一个对象。
extern COriginal g_orig;//works
extern CClass g_surf;//how is this declaration resulting in a 'data variable' type?
我在代码文件中(在全局空间中)实例化一个类。这就是错误发生的地方。
COriginal g_orig(CONST_ARGUMENT);//works
CClass g_surf();//seen as redefinition.
我从另外两个类创建了一个类,因为我需要这两个类的属性。
我可以找到其他无法提供对此问题的见解的重新定义问题。我没有在 MSVS2010 或网络上找到“数据变量”的含义。
最佳答案
您可能打算调用不带参数的构造函数。
CClass g_surf;
对于你的编译器,这一行
CClass g_surf();
是名为 g_surf 的方法的前向声明,该方法不带任何参数并返回一个 CClass。
关于c++ - 'data variable' 是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26718732/