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 に答える