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