MyClass& getMyClass() {return m_class}
private:
myClass* m_class;
これにより、エラーメッセージが表示されます: エラー: 型 'myClass*' の式からの型 'myClass&' の参照の初期化が無効です
機能させるには何を変更すればよいですか?このオブジェクトのリファレンスを返したいです。したがって、 getMyClass 関数のプロトタイプを変更したくありません。
MyClass& getMyClass() {return m_class}
private:
myClass* m_class;
これにより、エラーメッセージが表示されます: エラー: 型 'myClass*' の式からの型 'myClass&' の参照の初期化が無効です
機能させるには何を変更すればよいですか?このオブジェクトのリファレンスを返したいです。したがって、 getMyClass 関数のプロトタイプを変更したくありません。
に変更します
return *m_class;
m_class
が有効なポインタであることを確認してください(たとえば、解放されていないNULL
か解放されていません)。
MyClass &getMyClass() { return *m_class; }
ポインターは参照ではなく、ポインターを返しているため、参照を返す必要があります。ポインターを参照に変換するには (この場合)、ポインターを逆参照する必要があります。次に例を示します。
MyClass& getMyClass() {return *m_class}