0

ここに私のコードファイルがあります:

main.cpp

#include <iostream>
#include <fstream>
#include "Car.h"
#include "Engine.h"
using namespace std;

int main() {
   Car* car = new Car(1984);
   /* do something here */
   delete car;   
   return 0;
}

車.h

#ifndef CAR_H
#define CAR_H

#include <iostream>
using namespace std;

#include "Engine.h"

class Car {
public:
   Car(int);
   virtual ~Car();
   void serialize(ostream& s) {
      engine.serialize(s);
      s << ' ' << yearModel;
   } 
   void unserialize(istream& s) {
      engine.unserialize(s);
      s >> yearModel;
   }
private:
   Engine engine;
   int yearModel;
};

#endif /* CAR_H */

車.cpp

#include "Car.h"

Car::Car(int year) {
   yearModel = year;
}

Car::~Car() {
}

エンジン.h

#ifndef ENGINE_H
#define ENGINE_H

#include <iostream>
using namespace std;

class Engine {
public:
   Engine();
   virtual ~Engine();
   void serialize(ostream& s) {
      s << ' ' << engineType;
   } 
   void unserialize(istream& s) {
      s >> engineType;
   }
private:
   int engineType;
};

#endif /* ENGINE_H */

エンジン.cpp

#include "Engine.h"

Engine::Engine() {
   engineType = 1;
}

Engine::~Engine() {
}

main.cpp でやりたいことは、作成した Car オブジェクトを file.txt に保存し、後でそこから読み取ることです。それはどのように正確に機能しますか?例: Car クラスでシリアル化関数を呼び出すにはどうすればよいですか?

初心者のように聞こえたら申し訳ありませんが、この連載全体は私にとってかなり新しいものです。

編集:すべてのシリアル化関数と非シリアル化関数の前に「void」を追加すると、コードがコンパイルされるようになりました。

4

1 に答える 1