クラスmoneyboxを作成したいと思います。これは合計コイントに値1.5と10セントを加算することができます。ここで変数がこのクラススコープで宣言されていませんC++
は私のコードは次のとおりです。
#include <iostream>
#include <vector>
#include <string>
#include <stdexcept>
using namespace std;
class MoneyBox{
public:
MoneyBox(int one_num = 0 ,int five_num = 0,int ten_num = 0);
void print();
MoneyBox add(int ones,int fives,int tens);
private:
int sum;
int one_num;
int five_num;
int ten_num;
};
MoneyBox::MoneyBox(int ones,int fives,int tens){
sum = 1*ones + 5*fives + 10*tens;
one_num = ones;
five_num = fives;
ten_num = tens;
}
void MoneyBox::print(){
cout << one_num <<"*"<<"1Cent" << five_num <<"*"<<"5Cent" << ten_num <<"*"<<"10Cent" << "=" << sum;
}
MoneyBox MoneyBox::add(int ones,int fives,int tens){
one_num += ones;
five_num += fives;
ten_num += tens;
sum += 1 * ones + 5 * fives + 10*tens;
return MoneyBox(one_num,five_num,ten_num);
}
int main(){
MoneyBox m_1;
MoneyBox m_2(five_num = 3);
m_1.add(ones = 4, tens = 3);
m_2.add(fives = 3, ones = 2);
m_1.print();
cout << "\n";
m_2.print();
}
しかし、コンパイラはエラーを私にスローされます。
45:15:エラー:エラー: 'five_num' がこの範囲に 47:10を宣言していませんでした "ものはこのスコープで宣言されていない 47:20:エラー: 『十は』このスコープで宣言されていなかった 48:10:エラー: 『ファイブは、』このスコープで宣言されていなかったのはなぜそれがhappends、どのように
修理する?
これはPythonではありません。 'MoneyBox m_2(five_num = 3);'あなたが思う通りのことをしません – UKMonkey
@UKMonkeyどうすればいいですか? – vitsuk
@vitsukは[this](http://en.cppreference.com/w/cpp/language/default_arguments)を見て、それをクリアする必要があります。 –