Наследник в 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.