私は小さなOOPアプリを書いていて、セッターを介してクラスのプライベート文字列変数を設定する際にアプリを実行している(コンパイルしていない)ときにクラッシュしました。ヘッダーファイルは次のとおりです。
class Car
{
private:
int year;
std::string brand;
std::string model;
int price;
std::string currency;
public:
int setYear(int x){this->year = x;}
std::string setBrand(std::string x){this->brand = x;}
std::string setModel(std::string x){this->model = x;}
int setPrice(int x){this->price = x;};
std::string setCurrency(std::string x){this->currency = x;}
};
n - オブジェクトの数 temp - 整数を渡すための一時変数 temp1 - 文字列を渡すための一時変数
ifstream fd("input.in");
int n;
fd >> n;
int temp;
string temp1;
Car A[n];
for(int i = 0; i < 3; i++)
{
fd >> temp;
A[i].setYear(temp);
fd >> temp1;
A[i].setBrand(temp1); //Crashes Here
fd >> temp1;
A[i].setModel(temp1);
fd >> temp;
A[i].setPrice(temp);
fd >> temp1;
A[i].setCurrency(temp1);
}
少しテストした後、クラッシュし、コードが「ブランド」変数を設定しようとすることがわかりました。どうしたの?