• ベストアンサー

operatorは、派生で使用できない?

 以下のような例では、エラーとなります。 よい案がありましたら、教えてくださいませ class CManiac { private: int m_iValue; public: int GetiValue() { return m_iValue; } CManiac& operator=(int iValue) { m_iValue = iValue; return *this; } }; class Ctest public CManiac { } main() { Ctest test; test = (int)123; // error }

質問者が選んだベストアンサー

  • ベストアンサー
回答No.2

 訂正です。すんません。  ↓これはNGです。失礼しました。 class Ctest : public CManiac { public: Ctest& operator = (int iValue) { (*this) = iValue; return *this; } };  という事で、もう片方の方だけです。

その他の回答 (2)

  • anzu-k
  • ベストアンサー率66% (2/3)
回答No.3

>operatorは、派生で使用できない? についてですが、 全ての演算子ではなく、 代入演算子が継承できないと言うことです。 (個人的にはANo.1のmachongolaさんの下の例の方が汎用性があっていいと思います。)

noname#192260
質問者

お礼

PG 8年生ですが知りませんでした。 ありがとうございます。

回答No.1

 こんにちは。 class Ctest : public CManiac { public: Ctest& operator = (int iValue) { (*this) = iValue; return *this; } };  又は class Ctest : public CManiac { public: Ctest& operator = (int iValue) { CManiac::operator = (iValue); return *this; } };

関連するQ&A

専門家に質問してみよう