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

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

Barbara Streisand
发布: 2024-11-26 05:12:14
原创
862 人浏览过

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中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板