'数据变量'是什么意思?

时间:2014-11-03 16:39:21

标签: 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 this declaration resulting in a 'data variable'  type?

我在代码文件中实例化一个类(在全局空间中)。这是发生错误的地方。

COriginal g_orig(CONST_ARGUMENT);//works
CClass g_surf();//seen as redefinition.

我从另外两个类创建了一个类,因为我需要来自两个类的属性。

我可以找到其他重新定义的问题,这些问题无法提供对此问题的深入了解。我在MSVS2010或网络上找不到数据变量的含义'。

2 个答案:

答案 0 :(得分:2)

您可能打算调用没有参数的构造函数。

CClass g_surf;

对于您的编译器,此行

CClass g_surf();

是一个名为g_surf的方法的前向声明,它不带参数并返回一个CClass。

答案 1 :(得分:0)

'数据变量'看起来似乎包含用类类型声明的符号 所以,我试图将符号的类型重新定义为其他东西 我试图使用相同的符号来声明一个函数。

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