Структура классов

146
20 мая 2019, 09:10

Всех приветствую. Недавно начал свой путь изучения C++.

Во многих программах видел такую структуру классов:

car::salon::steeringWheel::rotation(180) 

Как это вообще реализуют?

Получается, что класс car наследует все методы класса salon и steerWheel?

Как это вообще работает?

Объясните, пожалуйста)

Answer 1

Постараюсь в кратце: есть такая штука в с++ - 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();

Тобишь, как видите, наследованием тут и не пахнет - просто вложенность.

READ ALSO
Добавить кнопку на виджет Qt

Добавить кнопку на виджет Qt

Нужна функция добавления кнопки на виджет

171
Как работает pow() в С++?

Как работает pow() в С++?

Решил глянуть код С++ -ного pow()Как это работает?

191
Как сравнить float и double?

Как сравнить float и double?

Как правильно сравнивать два числа типа float и double? Следующий способ часто говорит, что одинаковые числа различны:

120
property в GNU Compiler Collection

property в GNU Compiler Collection

Есть ли в GCC аналог microsoft'овских property https://msdnmicrosoft

153