I am trying to create a generic class to write and read Objects to/from file.
Called it ActiveRecord class

only has one method, which saves the class itself:

```
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();
}

```

now I'm extending this class with User class:

```
class User : public ActiveRecord
{
 public:
  User(void);
  ~User(void);
  string name;
  string lastName;
};

```

to create and save the user I would like to do something like:

```
User user = User();
user.name = "John";
user.lastName = "Smith"
user.save();

```

how can I get this ActiveRecord::saveRecord() method to take any object, and class definition so it writes whatever i send it:

to look like:

```
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();
}

```

and while we're at it, what is the default Object type in c++.
eg.
in objective-c it's id
in java it's Object
in AS3 it's Object
what is it in C++??