MyClass& getMyClass() {return m_class}
private:
myClass* m_class;
这给了我错误信息: 错误:“myClass&”类型引用的初始化无效 来自'myClass *'
类型的表达式我应该更改什么才能使其正常工作?我想返回这个对象的引用。所以我不想改变getMyClass函数原型。
答案 0 :(得分:5)
将其更改为
return *m_class;
确保m_class
是有效指针(例如,不是NULL
或已释放)!
答案 1 :(得分:2)
MyClass &getMyClass() { return *m_class; }
答案 2 :(得分:2)
因为指针不是引用,并且您正在返回指针,而应返回引用。为了将指针转换为引用(在本例中),您必须取消引用指针,例如:
MyClass& getMyClass() {return *m_class}