私はC++クラスの割り当てを終了しようとしていますが、これまでのところ答えが見つからないという問題がありました。C++のベクタの初期化されていないローカル変数エラー
私がしようとしているのは、ユーザーがループを解除するまで無期限に拡大できるベクターを作成することです。このベクトルは、クラス名オブジェクトを保持し、生徒の名前と成績情報を保持する必要があります。私はクラスが働いている。この時点で私に問題を与えていると思われるプログラムの唯一の部分は、ベクトルです。
エラーC4700:私は、このエラーコード取得維持
初期化されていないローカル変数 '学生は' ここ
を使用し、私の関数である:
私は初期化する方法をvoid vectorfctn(){
vector<student> *students; //I'm assuming this is what is causing the error
string stud;
double ex1;
double ex2;
double hw;
double fex;
char exit;
do {
cout << "Enter Student Name" << endl; cin >> stud;
cout << endl << "Enter First Exam" << endl; cin >> ex1;
cout << endl << "Enter Second Exam" << endl; cin >> ex2;
cout << endl << "Enter Homework" << endl; cin >> hw;
cout << endl << "Enter Final" << endl; cin >> fex;
student* s1 = new student(stud, ex1, ex2, hw, fex);
s1->calcFinalGrade();
students->push_back(*s1); //This is the line referenced by visual studio in the error
cout << "Would you like to continue? y or n" << endl;
cin >> exit;
delete s1;
} while (exit != 'n');
for (size_t i = 0; i < students->size(); i++) {
cout << students->at(i).calcFinalGrade() << endl;
}
};
ベクターのサイズを制限することなくベクトル?私はベクトルを吸って、本当にそれらを完全に理解していないので、アドバイスをいただければ幸いです。
ベクターは単独で増殖します。反パターンでなければならない1つを に動的に割り当てる必要はありません。とにかくそれを削除しようとしているときに、なぜ新しい学生を作るのですか? – smac89