在C++中返回对象时出现问题

Problems returning an object in C++

本文关键字:问题 对象 C++ 返回      更新时间:2023-10-16

我刚开始学习C++,我的任务有一部分有问题:

class Something {
     public:
         Random& random(); // should access a data member of type Random
     private:
         Random test(int r, int c);
}
Random& Something::random() {
         return (Random&) test;
}

现在在random()的函数定义中出现了一个"test"错误,因为"表达式必须是左值",我构建了解决方案,给出的错误消息是"'&':对绑定成员函数表达式的非法操作"

我必须保持函数声明的原样,因为它在规范中是这样列出的。

我该如何解决这个问题?

您在评论中说过:"test"应该是一个成员变量。

然后,你需要将你的类更改为:

class Something {
     public:
         Random& random(); // should access a data member of type Random
     private:
         // Not this. This declares test to be member function.
         // Random test(int r, int c);
         // Use this. This declares test to be member variable.
         Random test;
}
Random& Something::random() {
         return test;
}