首页  >  文章  >  后端开发  >  为什么我在 C 中收到'MyMessageBox 未命名类型”错误?

为什么我在 C 中收到'MyMessageBox 未命名类型”错误?

Barbara Streisand
Barbara Streisand原创
2024-11-26 05:12:14790浏览

Why am I getting the

“MyMessageBox 未命名类型”C 中的错误

当一个类尝试使用另一个尚未命名的类时,会出现此错误在给定的代码中,User 类声明了一个名为 dataMsgBox 的成员变量,它是 MyMessageBox 类的一个实例。编译时,MyMessageBox 尚未定义,导致错误。

为了解决这个问题,我们使用前向声明。我们声明 User 类而不先定义它,这允许 MyMessageBox即使没有完整的定义也可以引用它,然后应该颠倒定义的顺序,在 User.

class User; // Forward declaration of User

class MyMessageBox
{
public:
    void sendMessage(Message *msg, User *recvr);
    Message receiveMessage();
    vector<Message *>& dataMessageList;
};

class User
{
public:
    MyMessageBox dataMsgBox;
};

之前定义 MyMessageBox。传递指针,考虑传递引用以防止空值:

class MyMessageBox
{
public:
    void sendMessage(const Message& msg, User& recvr);
    Message receiveMessage();
    vector<Message *>& dataMessageList;
};

以上是为什么我在 C 中收到'MyMessageBox 未命名类型”错误?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn