2
    MyClass& getMyClass() {return m_class}

private:

    myClass* m_class;

这给了我错误消息:错误:从“myClass*”类型的表达式中对“myClass&”类型的引用无效初始化

我应该改变什么才能让它工作?我想返回这个对象的引用。所以我不想改变 getMyClass 函数原型。

4

3 回答 3

5

将其更改为

return *m_class;

确保m_class是一个有效的指针(例如未NULL释放或释放)!

于 2013-03-18T18:30:31.467 回答
2
MyClass &getMyClass() { return *m_class; }
于 2013-03-18T18:30:55.533 回答
2

因为指针不是引用,并且您正在返回一个指针,而应该返回一个引用。为了将指针转换为引用(在这种情况下),您必须取消引用指针,例如:

MyClass& getMyClass() {return *m_class}
于 2013-03-18T18:31:02.103 回答