struct Database
{
String _name;
int _age;
String _sex;
String _email;
String _eid;
String _address;
double _percentage;
};
class MyStudentDatabase
{
public: MyStudentDatabase();~MyStudentDatabase();
void addData(String name, int age, String sex, String email, String eid, String address, double percentage);
private: int _iSize;
Database * _pStructObject;
};
这是定义部分-
MyStudentDatabase::MyStudentDatabase()
: _iSize(1)
{
_pStructObject = new Database[_iSize];
}
MyStudentDatabase::~MyStudentDatabase()
{}
void MyStudentDatabase::addData(String name, int age, String sex, String email, String eid, String address, double percentage)
{
_pStructObject[_iSize - 1]._name = name;
_pStructObject[_iSize - 1]._sex = sex;
_pStructObject[_iSize - 1]._email = email;
_pStructObject[_iSize - 1]._eid = eid;
_pStructObject[_iSize - 1]._address = address;
_pStructObject[_iSize - 1]._percentage = percentage;
}
这个程序只保存一次数据,因为结构的大小是_iSize(1)
,所以_pStructObject[0]
对所有成员都有效,现在我想添加另一个成员并将该addData(...)
函数的大小增加_iSize++
;但问题是,如果我这样做,当我在构造函数中使用“new”运算符时,以前的数据会丢失。有什么解决办法吗?