我的课看起来像
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
类的文件中。
注意 Unreal
和 Blizzard[3]
仍然需要在包含您的 main
函数的文件中,而不是在头文件中,它应该只包含 struct
定义(如果您打算在其他模块中使用它,还可以选择包含 typedef
)。
关于c++ - 如何在另一个类中使用结构定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4291179/