分数の処理についてのコードなのですが、3つのコンストラクタを一つにまとめる方法がわからず困っています。
デフォルトは分子=0,分母=1で考えています。
C++
1class Fraction { 2private: 3 int num 4 int den 5public: 6 Fraction(); 7 Fraction(int); 8 Fraction(int, int); 9}; 10 11Fraction::Fraction() { 12 num = 0; 13 den = 1; 14}; 15 16Fraction::Fraction(int number) { 17 num = number 18 den = 1; 19}; 20 21Fraction::Fraction(int inNum, int inDen) { 22 num = inNum; 23 if (inDen == 0) { 24 den = 1; 25 } else { 26 den = inDen; 27 } 28};
試行錯誤していた際にデフォルト引数を2つ用意してこのようなコードの時にうまく処理が行えたのですが、宣言時と引数の名前が違っているのに処理ができたのはどうしてでしょうか?
C++
1class Fraction { 2private: 3 int num 4 int den 5public: 6 Fraction(int num = 0, int den = 1); 7}; 8 9 10 11Fraction::Fraction(int inNum, int inDen) { 12 num = inNum; 13 if (inDen == 0) { 14 den = 1; 15 } else { 16 den = inDen; 17 } 18};
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/09/30 16:07