Я пытаюсь создать класс в c ++, вызываемый для хранения значений для ряда параметров, которые организованы как переменные-члены класса 'Planet' и класса 'Satellite', которые я хочу инициализировать со ссылкой на экземпляр «Планета». Здесь я приведу пример, где у меня есть класс PlanetCatalog с
переменные-члены 'Планета Нептун' и 'Спутниковый тритон'.
class Planet {
public:
double a;
Planet() {}
void setParams( const double a_) {
a = a_;
}
};
class Satellite {
public:
double b;
Planet & planet;
Satellite( Planet & planet_):planet(planet_) { }
void setParams(const double b_) {
b = b_;
}
};
class PlanetCatalog {
public:
Planet neptune;
Satellite triton(neptune);
void setAll() {
neptune.setParams(1.);
triton.setParams(2.);
}
};
Однако при компиляции я сталкиваюсь с ошибкой.
error: unknown type name 'neptune'
Satellite triton(neptune);
Возможно ли сохранить Планету и Спутник как переменные того же класса, что и я здесь? Если нет, то может ли кто-нибудь предложить лучший способ организации этой функциональности в c ++?