- ベストアンサー
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 }
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
訂正です。すんません。 ↓これはNGです。失礼しました。 class Ctest : public CManiac { public: Ctest& operator = (int iValue) { (*this) = iValue; return *this; } }; という事で、もう片方の方だけです。
その他の回答 (2)
- anzu-k
- ベストアンサー率66% (2/3)
>operatorは、派生で使用できない? についてですが、 全ての演算子ではなく、 代入演算子が継承できないと言うことです。 (個人的にはANo.1のmachongolaさんの下の例の方が汎用性があっていいと思います。)
- machongola
- ベストアンサー率60% (434/720)
こんにちは。 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; } };
お礼
PG 8年生ですが知りませんでした。 ありがとうございます。