2016-12-09 14 views
-7

によって、オブジェクトのベクトル私は最近、自分の名前や成績など、学生のオブジェクトを表現するために、ベクトルのオブジェクトを作成する方法を学習しようとした作り。私のプログラムを書いたとき、私は&を使うことにいくつかの誤りがありました。私は自分の間違いで何が問題なのか分かりません。それを修正するために私を助けてくれますか?は、クラス

#include <iostream> 
#include <vector> 
#include <string> 

using namespace std; 

void printvector(const vector< student>&); // fill vector.fill in student information 
void fillvector(vector< student>&); // print the information of all students 
class student { 
    public: 
     student(); 
     student(string, char); 
     ~student(); 
     string getName() ; 
     char getGrade() ; 
     void setName(string); 
     void setGrade(char); 

    private: 

     string newName; 
     char newGrade; 
}; 

student::student() { newGrade = ' '; } 

student::student(string name, char grade) { 
     newName = name; 
     newGrade = grade; 
} 

student::~student(){ } 

string student::getName() { return newName; } 

char student::getGrade() { return newGrade; } 

void student::setName(string name) { newName = name; } 

void student::setGrade(char grade) { newGrade = grade; } 



int main() { 

     vector<student> myclass; 
     printvector(myclass); 
     fillvector(myclass); 
     return 0; 
} 

void fillvector(vector< student>& newmyclass) { 

    string name; 
    char grade; 

    int classsize; 
    cout << "how many students are in your class?"; 
    cin >> classsize; 

    for (int i = 0; i < classsize; i++) { 

     cout << "enter student name"; 
     cin >> name; 
     cout << "enter student grade"; 
     cin >> grade; 

     student newstudent(name, grade); 
     newmyclass.push_back(newstudent); 
     cout << endl; 
    } 
} 

void printvector(vector< student>& newmyclass) { 

    unsigned int size = newmyclass.size(); 
    for (unsigned int i = 0; i < size; i++) { 

     cout << "student name:" << newmyclass[i].getName() << endl; 
     cout << endl; 
     cout << "student grade" << newmyclass[i].getGrade() << endl; 
     cout << endl; 
    } 
} 
+1

スタート。 – user2079303

+0

あなたが望むのは不明です。 – Boiethios

+0

これらのエラーの詳細について言及した方が簡単です。それらをコピーして質問に貼り付けます。 – molbdnilo

答えて

0

ベクトルを入力する前に印刷しているようです。スワップ時に問題は解決していますか?エラーメッセージを読み取ることで

int main() { 

     vector<student> myclass; 
     printvector(myclass); // <--- These two lines should probably be swapped 
     fillvector(myclass); // <--- 
     return 0; 
} 
+0

はい、私はポイントを取得します。あなたの答えをありがとう – sara