Всех приветствую. Недавно начал свой путь изучения C++.
Во многих программах видел такую структуру классов:
car::salon::steeringWheel::rotation(180)
Как это вообще реализуют?
Получается, что класс car наследует все методы класса salon и steerWheel?
Как это вообще работает?
Объясните, пожалуйста)
Постараюсь в кратце: есть такая штука в с++ - namespace. Она позваляет объявлять, определять и использовать функции с одинаковым названием и сигнатурой если они в разных наймспэйсах. Они могут быть вложенными и выглядеть примерно так:
namespace alfa {
namespace beta {
int fun();
};
int fun();
};
...
alfa::fun();
alfa::beta::fun();
Это две разные функции. При этом имена классов (с которых наверно и следовало начать) и перечисления (enum) могут использоваться подобным образом:
class alfa {
enum class type{one, two};
class beta {
static beta *instance();
};
};
...
alfa::type::one;
alfa::beta::instance();
Тобишь, как видите, наследованием тут и не пахнет - просто вложенность.
Сборка персонального компьютера от Artline: умный выбор для современных пользователей