- 締切済み
現在、プログラムが解けずに悩んでいます。どうかお力を御貸しください。
int main() { Power p1, p2(2), p3(3); //初期値の設定 p1.print("p1=");p2.print("p2=");p3.print("p3="); //メンバ関数printで表示 (++p2).print("++p2="); //++p2は,p2のメンバ値の2乗(前置演算) p2.print("p2="); (p3++).print("p3++="); //p3++は,p3のメンバ値の2乗(後置演算) p3.print("p3="); return 0; } ※クラスPowerには、int型のメンバ値を1つだけ持ち、メンバ関数として、operator++とprint()を持つ。 operator++には前置演算用と後置演算用の2種類がある。 解ける人がいましたら、教えてください。 お願いします。
- みんなの回答 (3)
- 専門家の回答
みんなの回答
- Tacosan
- ベストアンサー率23% (3656/15482)
その前に, 問題を教えてください.
- mikaemi
- ベストアンサー率50% (33/65)
たとえば、こんなの? ==== 適当すぎる?(笑) #include <iostream> #include <string> class Power { int v; public: Power(int v_ = 0) : v(v_) {} Power &operator++() { v *= v; return *this; } Power operator++(int) { int rv = v; v *= v; return rv; } void print(const std::string &s) const { std::cout << s << v << '\n'; } };
- koko_u_
- ベストアンサー率18% (459/2509)
インクリメント演算子を「2乗」を計算するように Power クラスに実装しろということですか? 回答:断固拒否