C++ C++;返回对象的引用

C++ C++;返回对象的引用,c++,C++,这给了我错误消息: 错误:“myClass&”类型的引用初始化无效 来自“myClass*”类型的表达式 我应该做什么改变才能让它工作?我想返回这个对象的引用。所以我不想更改getMyClass函数原型。将其更改为 MyClass& getMyClass() {return m_class} private: myClass* m_class; 确保m_class是有效指针(例如,不NULL或释放) 因为指针不是引用,您正在返回指针,而应该返回引用。要将指针转换为引

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

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

将其更改为

    MyClass& getMyClass() {return m_class}

private:

    myClass* m_class;

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

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

MyClass &getMyClass() { return *m_class; }

指针和引用是不同的类型。@SteveTownsend picky picky:DBy有效指针指的是指向已分配但未释放的内存的指针,即您需要能够引用ify m_类。因此,在编写这样的代码时需要小心——你应该说服自己它是安全的。@JacobParker我认为他对“
NULL
或无效指针”提出了异议,好像这些都是排他性的,没错:)谢谢。固定的。
MyClass &getMyClass() { return *m_class; }
MyClass& getMyClass() {return *m_class}