c++ - 结构原型(prototype)

标签 c++ visual-studio-2010 header-files code-organization

我有一个标题,它包含一个结构的原型(prototype):

struct UserDataStruct;

header 的源文件包含并包含 header 和:

struct UserDataStruct
{
    int instance;
};

在我的主源文件中,我有:

int main ()
{
    UserDataStruct lol;

    return 0;
}

我似乎无法编译我的程序,因为 Visual Studio 2010 给我一个错误:

error C2079: 'lol' uses undefined struct 'UserDataStruct'

我怎样才能让它工作?

最佳答案

UserDataStruct 的完整定义需要在您创建它的实例之前出现。在这种情况下,前向声明是不够的。

只需将您的结构定义从 .cpp 文件移动到 header 即可。

关于c++ - 结构原型(prototype),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14150457/

相关文章:

C++删除指针映射: free() invalid size

c++ - 在类的构造函数中创建对象是否有效?

c++ - kiss_fftr 后接 kiss_fftri(窗口尺寸非常大)不返回输入信号

c++ - 从 VS10 应用程序查找/终止进程(VC6 应用程序)?

c++ - 将 std::unique_ptr 类成员标记为 const

c# - 将当前的单元测试结果与之前的进行比较

visual-studio - 如何离线安装Visual Studio文档?

c - 对 rand() 的 undefined reference 甚至认为它已被包含和定义

c++ - 即使使用前向声明也会出现未定义的类型错误

c# - 为什么C#没有头文件? namespace 会处理所有事情吗?