用户类作为基础类,学生类作为用户的派生类。
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。
如何解决这个问题?谢谢。
答案 0 :(得分:0)
在主要功能中:
Student current_student;
User* current_user = ¤t_student;
使用current_user
来调用所有函数。
根据上面的代码,我只能建议这个。
当前,您正在使用在堆栈上创建的两个不同的对象,并保存Student对象的数据。