c++ - 'data variable' 是什么意思?

标签 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 或网络上找到“数据变量”的含义。

最佳答案

您可能打算调用不带参数的构造函数。

CClass g_surf;

对于你的编译器,这一行

CClass g_surf();

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

关于c++ - 'data variable' 是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26718732/

相关文章:

c# - Windows azure应用程序开发步骤失败

python-3.x - 需要从不同的类调用类方法而不初始化第一个类或其他方式

c++ - 第一个 cout 语句末尾的空格显示在第二个 cout 的开头

visual-studio - 使用 F# 自动化 Excel 2010

c++ - Qt C++ 以旧窗口为中心显示新窗口

c++ - 在 QtCreator (VS 2010) 中设置 CUDA v7.0

java - 请问a.b和a$b有什么区别?

c++ - 从命令行读取常量作为全局变量

c++ - 错误的函数调用 "IOCTL_DISK_GET_DRIVE_LAYOUT_EX"

C++ 栈上的变长数组