オブジェクトをファイルとの間で読み書きするためのジェネリッククラスを作成しようとしています。それをActiveRecordクラスと呼びました
クラス自体を保存するメソッドは1つだけです。
void ActiveRecord::saveRecord(){
string fileName = "data.dat";
ofstream stream(fileName.c_str(), ios::out);
if (!stream) {
cerr << "Error opening file: " << fileName << endl;
exit(1);
}
stream.write(reinterpret_cast<const char *> (this), sizeof(ActiveRecord));
stream.close();
}
今、私はこのクラスをUserクラスで拡張しています:
class User : public ActiveRecord
{
public:
User(void);
~User(void);
string name;
string lastName;
};
ユーザーを作成して保存するには、次のようにします。
User user = User();
user.name = "John";
user.lastName = "Smith"
user.save();
このActiveRecord::saveRecord()メソッドで任意のオブジェクトを取得し、クラス定義を取得して、送信したものをすべて書き込むにはどうすればよいですか?
のように見えるように:
void ActiveRecord::saveRecord(foo_instance, FooClass){
string fileName = "data.dat";
ofstream stream(fileName.c_str(), ios::out);
if (!stream) {
cerr << "Error opening file: " << fileName << endl;
exit(1);
}
stream.write(reinterpret_cast<const char *> (foo_instance), sizeof(FooClass));
stream.close();
}
そして、私たちがそれに取り組んでいる間、c++のデフォルトのオブジェクトタイプは何ですか。例えば。Objective-CではJavaではID、AS3ではオブジェクト、C++ではオブジェクトとは何ですか?