C++错误:类与同一头文件中的结构有关系
C++ Error: Class has-a-relationship with Struct in Same Header File
我正在定义一个C++头文件,由于某种原因,当我试图引用在同一文件中定义的结构以及我创建的枚举类时,我创建的类会出错。
虽然我对Java和C#有一些经验,但我对C++还是很陌生的。即便如此,我的编程经验还是相对较低。我初始化引用是否错误?我应该将结构和枚举都放在一个单独的头文件中吗?
#include <iostream>
#include <stdio.h>
class Character
{
private:
Stats stats; //<--error: "Type 'Stats' could not be resolved."
public:
};
struct Stats
{
int strength;
int intelligence;
int endurance;
int speed;
int agility;
int luck;
};
enum Race
{
NONE,
HUMAN,
ALIEN,
ANDROID
};
注意:我使用Eclipse 3.7(Indigo)作为C++,以防这意味着什么。
C++从文件的顶部到底部进行解析;您需要将Stats
类定义移动到Character
类定义之上。
在C++中,除非已经声明,否则不能使用某些东西。
在您的情况下,Stats
不仅必须已声明,而且必须已完全定义。
也就是说,所有大写标识符通常都是为宏保留的。不要将它们用作常量。将它们用于常量对任何阅读代码的人来说都是一种攻击性的攻击,它有无意中替换文本的风险,而且它减少了宏名称的少量选择。这是Java主义。它在Java中工作是因为Java没有预处理器(具有讽刺意味的是,Java从C中获得了约定,在C中,它的宏被用作"常量")。
干杯&hth
相关文章:
- .cpp和.h文件中的模板专用化声明
- 为什么两个不同的未命名名称空间可以共存于一个cpp文件中
- 文本文件中的单词链表
- CMake-按正确顺序将项目与C运行时对象文件链接
- 使用新行和不使用新行读取文件
- 在C++程序中输入的文本文件将不起作用,除非文本被复制和粘贴
- 挂起和取消挂起一个文件DLL
- 如何确定我已使用非编码文件到达 EOF?
- 命名空间中具有.h和.cpp文件的类
- 如何使用ndk-build.cmd构建Android.so文件
- 从包含m行的文件中提取n行,必要时(惰性地)重复该文件
- 读取文件并输入到矢量中
- 在C++中查找文件
- c++库的公共头文件中应该包含什么
- 对模板运算符的未定义引用,其定义位于同一头文件中
- 是否可以在同一头 c++ 文件中调用内联函数
- 在同一头文件的结构中使用类
- 如何使用同一头文件编译和链接C++中的目标文件
- 在同一头文件中定义外部变量
- C++错误:类与同一头文件中的结构有关系