报错如题,若使用Linux英文系统,可能报错内容如下:
Error:'SomeClass' does not name a type
这是因为SomeClass.h还没有被编译,编译器编译此段代码时找不到SomeClass类的定义。
解决方式是,在报错的类前先声明SomeClass类:
Class SomeClass;
一般就可以解决问题
报错实例:
class User
{
public:
MyMessageBox dataMsgBox;
};
class MyMessageBox
{
public:
void sendMessage(Message *msg, User *recvr);
Message receiveMessage();
vector<Message> *dataMessageList;
};
解决方案:
class MyMessageBox;
class User
{
public:
MyMessageBox dataMsgBox;
};
class MyMessageBox
{
public:
void sendMessage(Message *msg, User *recvr);
Message receiveMessage();
vector<Message> *dataMessageList;
};此时,你还有可能遇到另一个错误:
错误:字段 ‘dataMessageList'类型不完全
这是因为没有包含此变量类型的声明头文件,加一个include就好
#include<vector>
using namespace std;

本文介绍了如何解决C++编程中常见的编译错误——“SomeClass does not name a type”。通过提前声明类的方式可以有效避免此类错误,并给出了具体的代码实例。此外,还介绍了如何解决因未包含必要头文件而导致的变量类型不完全的问题。
776

被折叠的 条评论
为什么被折叠?



