c++ - 如何在另一个类中使用结构定义

标签 c++ structure

我的课看起来像

struct Games
{ char Name[80];
char Rating;
bool  Played;
long NumberOfKills;
} Unreal, Blizzard[3];

typedef Games* Gamesptr;

int _tmain(int argc, _TCHAR* argv[])
{
    int x;
    Gamesptr  ptr =  new Games;
    return 0;
}

现在我想在另一个类中使用上面定义的结构,如下所示

structTest::structTest(void)
{
}

structTest::~structTest(void)
{
}
void structTest::test(void)
{
    // goes here        
    Games *structptr = new Games;// This not working ....
}

我该怎么做......当我尝试时它抛出“没有合适的默认构造函数可用”错误...

最佳答案

看起来您的 struct Games 是在一个文件中声明的,而 structTest 是在另一个文件中声明的。是吗?

您的 structTest 类需要查看 Games 结构的定义才能工作。

Games 结构放在它自己的文件中(可以将其命名为 Games.h)。 #include 这在包含您的 main 函数的文件和定义 structTest 类的文件中。

注意 UnrealBlizzard[3] 仍然需要在包含您的 main 函数的文件中,而不是在头文件中,它应该只包含 struct 定义(如果您打算在其他模块中使用它,还可以选择包含 typedef)。

关于c++ - 如何在另一个类中使用结构定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4291179/

相关文章:

c++ - 此代码中调试断言的原因

C++使用=从定义的父类(super class)转换为子类

PHP MVC 结构在哪里放置自己的类

c++ - 组织一个 C++ 游戏的最佳方式是什么,该游戏涉及用户在路径之间进行选择以便在旅程中取得进展?

c++ - 如何从 Visual Studio 远程构建 32 位 linux 模块?

c++ - 在没有复制省略的情况下,复制/移动构造函数是否保证在析构函数之前被调用?

c - C 中结构解引用运算符的更复杂表示法是 ->?

c - 结构本身的地址

c++ - 使用标准 C++ 库调试符号? Ubuntu/Linux/libstdc++6-8-dbg?

c - 查找最高总分并显示具有该总分的学生信息