Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 03.02.2023, 20:44   #1
Loksiin12
Форумчанин
 
Регистрация: 04.10.2020
Сообщений: 136
По умолчанию Можно ли наследовать созднный объект класса другим классом или как получить его тип?

Предположим есть класс
Код:
template<class Q,class E>
class K1{...};K1<int,char>U;
template<class Q>
class K2:public U{...};
Получаю ошибку C2516. Идея состоит в том что 2ой класс получает все точные параметры созданного объекта. Если записать так
Код:
class K2:K1<decltype(U)>{...};
то получаем не верные значения полей хотя идея сама работает возникает вопрос как получить базовую версию из <int,char>U, т.е. как понять что U имеет тип <int,char>.
Loksiin12 вне форума Ответить с цитированием
Старый 03.02.2023, 20:47   #2
Loksiin12
Форумчанин
 
Регистрация: 04.10.2020
Сообщений: 136
По умолчанию

Этим занимается typeid но он возвращает строку а не тип.
Loksiin12 вне форума Ответить с цитированием
Старый 04.02.2023, 19:02   #3
waleri
Старожил
 
Регистрация: 13.07.2012
Сообщений: 6,330
По умолчанию

В классе K1 пишем:
using FirstType = Q;
using SecondType = E;

В классе K2 пишем:
using FirstType = typename Q::FirstType;
using SecondType = typename Q::SecondType;

Только зачем?
waleri вне форума Ответить с цитированием
Старый 05.02.2023, 12:03   #4
maks1331
Форумчанин
 
Аватар для maks1331
 
Регистрация: 20.12.2016
Сообщений: 270
По умолчанию

Цитата:
Сообщение от Loksiin12 Посмотреть сообщение
Этим занимается typeid но он возвращает строку а не тип.
Код:
std::size_t hash = typeid(object).hash_code()
формошлеп.рф
witech.su
maks1331 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как сделать так, чтобы при наведении мышкой на объект, который находится под другим, этот объект выходил на первый план? Zaza7 HTML и CSS 3 17.01.2013 10:23
как можно получить имя класса окон? TLabel Общие вопросы Delphi 2 09.06.2011 23:01
Определение типа класса по переменной на объект этого класса при компиляции phomm Общие вопросы Delphi 24 08.04.2011 14:11
Шаблоны - нужно создать объект класса abc в котором вместо aa использовался бы объект класса fff? Farrel Общие вопросы C/C++ 2 13.11.2010 17:37
Если в классе объявить объект другого класса,будет ли видно переменные первого класса из объекта второго? TwiX Общие вопросы Delphi 3 15.11.2009 00:54