如何从基类继承变量内容?

时间:2019-12-02 01:53:52

标签: c++ c++11 visual-c++

用户类作为基础类,学生类作为用户的派生类。

class User{
protected:
    string name;
    string id;
public:
    ...set and get function..

    virtual void Serialize(ofstream& fstream){
    fstream << id << "," << name << ",\n";
    }
}

class Student :public User{
private:
    string school;
public:
    ...set and get function...

    virtual void Serialize(ofstream& fstream){
    fstream << id << "," << name << "," << school << ",\n";
    }
}

这是主要班级。

void save(Save& i_save){
    ofstream outfile;
    outfile.open("save.csv", ios::app);
    i_save.Serialize(outfile);
}


int main() {

    User current_user;
    User current_student;

    string in_name;
    string in_id;
    string in_school;

    cin >> in_name;
    current_user.setName(in_name);

    cin >> in_id;
    current_user.setID(in_id);

    cin >> in_school;
    current_student.setSchool(in_school);

    save(current_student);

    return 0;

} 

输入示例:SAM <-名称,S02 <-id和Rock <-学校。

我想将所有这些输入都保存在CSV文件中,但是当我运行时,它仅保存学校内容而没有名称和ID。

如何解决这个问题?谢谢。

1 个答案:

答案 0 :(得分:0)

在主要功能中:

Student current_student;

User* current_user = &current_student;

使用current_user来调用所有函数。 根据上面的代码,我只能建议这个。

当前,您正在使用在堆栈上创建的两个不同的对象,并保存Student对象的数据。