Russian Qt Forum
Ноябрь 25, 2024, 07:08 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Template class name  (Прочитано 3071 раз)
Azazello
Самовар
**
Offline Offline

Сообщений: 103


Просмотр профиля
« : Февраль 06, 2020, 19:57 »

Есть ли шаблонные решения?.

Код:
template <class T>
class Item
{
public:
     Item<T> parent() { return mParent;}
private:
     Item<T> mParent;
}

Item<int> t1;
Item<int> parent = t1.parent; //OK


Ну тут все понятно, пока мы не сделаем наследование.

Код:
class DevItem : public Item<int> 
{
.......
}

DevItem t1;
DevItem parent = t1.parent() //error - несовместимые типы Item<int>  и DevItem


И как?


« Последнее редактирование: Февраль 06, 2020, 19:58 от Azazello » Записан
Авварон
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 3260


Просмотр профиля
« Ответ #1 : Февраль 06, 2020, 20:08 »

Код:
template <class T, class Derived>
class Item
{
public:
     Derived parent() { return mParent;}
};

class DevItem : public Item<int, DevItem >
{...};

В данном примере int не используется но может понадобится

Возможно поможет https://github.com/ABBAPOH/textureviewer/blob/master/src/libs/utils/treemodelitem.h
« Последнее редактирование: Февраль 06, 2020, 20:12 от Авварон » Записан
Azazello
Самовар
**
Offline Offline

Сообщений: 103


Просмотр профиля
« Ответ #2 : Февраль 06, 2020, 22:28 »


В данном примере int не используется но может понадобится

Возможно поможет https://github.com/ABBAPOH/textureviewer/blob/master/src/libs/utils/treemodelitem.h

int использован для примера как самый короткий тип.
И, конечно же, это фрагмент дерева.

Просто возникало чувство неловкости при написании.

class DevItem : public Item<int, DevItem >
{...};


Какое-то масло маслянное. Уже ушло.
Спасибо за ответ.

P.S.
Уважамс! Хватает же терпения на осмысленные название комитов.
« Последнее редактирование: Февраль 06, 2020, 22:53 от Azazello » Записан
Авварон
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 3260


Просмотр профиля
« Ответ #3 : Февраль 06, 2020, 22:32 »

Ну "рекурсивные" темплейты это стандартная фича, смотрится конечно неадекватно, но люди пользуются
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.114 секунд. Запросов: 23.