Я понимаю, что это не лучшее название, но я не уверен, как объяснить эту проблему, с которой я столкнулся, без примеров.
У меня есть базовый класс (называемый vector3)
class vector3 {
protected:
double x,y,z;
public:
vector3(): x(0),y(0),z(0) {}
vector3(double xin, double yin, double zin): x(xin),y(yin),z(zin) {}
~vector3() {}
//...other stuff
};
Затем у меня есть еще один класс, производный от vector3, называемый vector4:
class vector4 : public vector3 {
protected:
double ct;
public:
vector4(): vector3(0,0,0), ct=0 {}
vector4(double ctin): ct(ctin) {}
vector4(double ctin, double xin, double yin, double zin):
vector3(xin, yin, zin), ct(ctin) {}
vector4(double ctin, vector3 v):
vector3(v.getx(), v.gety(), v.getz()), ct(ctin) {}
~vector4() {}
//...more other stuff
};
И это все хорошо, но теперь у меня есть класс с именем particle
, определенный следующим образом:
class particle : public vector4 {
protected:
//vector4 r;
double mass;
//vector3 beta;
public:
particle(): vector4(0,0,0,0), mass=0, vector3(0,0,0) {}
particle(vector4 rin, double massin, vector3 betain):
vector4(rin.getx(),rin.gety(),rin.getz(),rin.getct()),
mass=0,
vector3(betain.getx(),betain.gety(),betain.getz()) {}
~particle() {}
//...Further stuff
};
Итак, теперь возникает вопрос:
Как мне вернуть значение x, значение y и значение z положения частицы, а также значение x, значение y и значение z бета-вектора частицы внутри функции в классе частиц?
С вектором 4 я бы просто сделал:
double getx() const {
return x;
}
double gety() const {
return y;
}
и т. д., но что бы я использовал в классе частиц?
~vector3() {}
. - person R. Martinho Fernandes   schedule 21.03.2014