C ++返回对象的引用

时间:2013-03-18 18:29:40

标签: c++

    MyClass& getMyClass() {return m_class}

private:

    myClass* m_class;

这给了我错误信息:  错误:“myClass&”类型引用的初始化无效 来自'myClass *'

类型的表达式

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

3 个答案:

答案 0 :(得分:5)

将其更改为

return *m_class;

确保m_class是有效指针(例如,不是NULL或已释放)!

答案 1 :(得分:2)

MyClass &getMyClass() { return *m_class; }

答案 2 :(得分:2)

因为指针不是引用,并且您正在返回指针,而应返回引用。为了将指针转换为引用(在本例中),您必须取消引用指针,例如:

MyClass& getMyClass() {return *m_class}