编辑:这个问题并非偏离主题,因为它描述了使用Turbo C ++处理数据文件时的问题。
首先,Turbo C ++是因为我的学校。不要评论告诉我停止使用它,我被迫。
简介:我正在尝试构建DFH库,因此我将所有这些功能都写入,读取,插入,删除,修改等。 我使用stings使函数适用于传递给它们的任何文件名。
我从整个课程中理解(自学)然后以read_stream.read((char*)& Object_1, sizeof(Object_1));
形式传递它的对象以读取您使用相同对象编写的文件:< strong>该类用作将数据打印到文件的模板。
问题:我想将它们与不同类的不同对象一起使用,因此这些DFH函数用于执行所需任务的对象应该类似于模板。
我正在考虑使用模板或抽象类和继承做某事,但我是初学者,所以我需要有人指出我正确的方向!
要清理:我想通过将此源文件包含在包含不同类的其他程序中来使用相同的功能。
示例代码
class Data {
int user_id;
public:
void enter() { //Input Function
cout<<"\nID: ";
cin>>user_id;
};
void write(char* file_1) { //File Write Function
clrscr();
Data Object_1;
char ch;
int records_read =0;
ofstream fout;
fout.open(file_1, ios::binary|ios::noreplace);
do {
records_read++;
Object_1.enter(records_read);
fout.write((char*)& Object_1, sizeof(Object_1));
cout<<"\nDo you want to continue? Y/N - ";
cin>>ch;
} while((ch=='y')||(ch=='Y'));
cout<<"\nWrite Successful!";
fout.close();
}
如何使函数write()与任何其他类一起使用,而不必显式更改语句Data Object_1;
?