std::derived_from: тип наследует указанный базовый класс. Так типобезопасно принимают производные объекты в шаблонах.">
Следите за новинками
в нашем Telegram канале. Жми, чтобы подписаться:)
⊗cpSpCoDv 427 of 696 menu
◀ ▶

Наследник в C++

Наследование базового класса проверяет std::derived_from: тип наследует указанный базовый класс.

Так типобезопасно принимают производные объекты в шаблонах. Подключите #include <concepts>, опишем иерархию и выведем метку из производного класса:

#include <concepts> #include <iostream> #include <string> struct Tag { std::string name; }; struct Code : Tag {}; template<std::derived_from<Tag> D> std::string read_name(D object) { return object.name; } int main() { Code item{"alpha"}; std::cout << read_name(item) << "\n"; return 0; }

Объявите базовый struct Base с полем int id и производный struct Child. Напишите шаблон fetch_id с std::derived_from<Base> и выведите id у Child со значением 5.

← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить