내 목표는 수준의 입자가 직렬화하는 것입니다으로 생성자를 사용하여 질문 :C++ (직렬화) 멤버 함수
파생 클래스에서 istream로부터 읽기, 나는 구성원으로 입자의 기본 클래스 '생성자를 사용할 수 있습니다 "초기화"를위한 funtion?
// 가능한 오해의 이유 : 나는 setter를 쓸 수 있지만, codeblocks가 Particle의 인스턴스에 액세스 연산자를 적용 할 때 사용 가능한 멤버 함수로 생성자를 표시 할 때이 옵션/아이디어를 발견했습니다. 이 "늦은"초기화 방법에 대해서는 들어 본 적이 없지만 많은 수의 세터를 쓰는 것보다 더 좋아할 것입니다 ...
기본적으로이 코드가 맞습니까? 내가 대안을 보여줄 수 직렬화 사람의 아이디어에 대해 완전히 틀렸다면, 또는 나는 매우 감사 할 것
using namespace std;
struct Serializable {
virtual void write(ostream&) const = 0;
virtual void read(istream&) = 0;
virtual ~Serializable() {}
};
class Particle {
double X, Y;
public:
Particle(double x=0, double y=0) :X(x), Y(y) {}
//...
};
class PParticle: Particle, Serializable {
//void write...
void read(istream& is) {
double x, y;
cout<<"coord x: "; is>>x;
cout<<"coord y: "; is>>y;
this->Particle(x, y); //this is the questionable line
}
};
하면되지!
'this-> X = x; this-> Y = y;'? 왜 생성자를 호출하려고합니까? –
한편 나는 그것을 시험해 보았고 오류가 발생했다 : 'Particle :: Particle'을 잘못 사용했다. codeblocks가 생성자를 사용 가능한 멤버 함수로 제공하는 이유는 무엇입니까? – HONDDAACCORD
@CodyGray X와 Y는 개인적인 문제이므로 주된 문제입니다 – HONDDAACCORD