C++ 何谓';数据变量';?

C++ 何谓';数据变量';?,c++,visual-studio-2010,class,redefinition,C++,Visual Studio 2010,Class,Redefinition,在这个错误中,MSVS2010中的“数据变量”是什么意思?我以为我是在声明代码中其他地方定义的符号 错误C2365:“g_surf”:重新定义;以前的定义是“数据变量” 显然,这可能意味着int或char。 我遵循了一个有效的例子。 在声明符号之前,我必须包含类的定义 #include classdef.h 我使用extern关键字在stdafx.h中声明了一个对象 extern COriginal g_orig;//works extern CClass g_surf;//how is th

在这个错误中,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或web上找到“数据变量”的含义。

您可能想调用一个没有参数的构造函数

CClass g_surf;
对于编译器,这一行

CClass g_surf();

是一个名为g_surf的方法的正向声明,该方法不带任何参数并返回一个类。

'Data variable'似乎包含用类类型声明的符号。
因此,我试图将符号的类型重新定义为其他类型。
我试图使用相同的符号来声明函数


我在代码中犯的错误是在实例化类时在符号名上添加了括号。

现在我需要知道数据变量的含义,而不是关注整个重新定义部分,这似乎有点傻。“你可能是指”是猜测。但是你的编译器并没有猜测你的意思,它只是告诉你什么是错的:)这似乎不是针对我的问题,但它确实解决了问题。另一个问题是编译器错误消息,它本身就是一团乱麻。还有什么属于“数据变量”组呢?它是在某处定义的吗?或者我只记得错误语句的某些部分未定义时的含义吗?