powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / Как правильно реализовать метод внутреннего шаблона?
6 сообщений из 6, страница 1 из 1
Как правильно реализовать метод внутреннего шаблона?
    #33820250
Opus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Имеются шаблоны примерно такого вида:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
namespace MyNames
{
    template <typename Type> class MyInterface
    {
    public:    
        virtual Type doSmth() =  0 ;
    };

    template <typename Type> class SomeClass
    {
    private:
        template <typename T> class HelperClass : public MyInterface
        {
        public:
            virtual Type doSmth();
            ...
        };
        ...
    };
}
Шаблоны SomeClass и HelperClass должны быть одного типа (HelperClass играет роль вспомогательного для SomeClass).
Вопрос в том, как правильно впоследствии написать реализацию HelperClass::doSmth() ?
Попробовал что-то вроде:
Код: plaintext
1.
2.
3.
4.
5.
6.
using MyNames::SomeClass;
...
template <typename Type> Type SomeClass<Type>::HelperClass<Type>::doSmth()
{
    ...
};
Однако компилятор (MinGW) такую конструкцию не переварил: неожиданно стал ругаться на объявление HelperClass, на то, что в этой сигнатуре слишком мало параметров шаблонов (template parameters) и еще на несколько вещей.
Как сделать правильнее?
...
Рейтинг: 0 / 0
Как правильно реализовать метод внутреннего шаблона?
    #33822967
funikovyuri
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Opus
Шаблоны SomeClass и HelperClass должны быть одного типа (HelperClass играет роль вспомогательного для SomeClass).

Если я правильно понял, то у вас HelperClass должен быть обычным, а не шаблонным, тогда все получится
...
Рейтинг: 0 / 0
Как правильно реализовать метод внутреннего шаблона?
    #33823684
Opus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Если бы его можно было делать обычным, проблемы бы и не было... Увы, его как раз нужно шаблоном делать
...
Рейтинг: 0 / 0
Как правильно реализовать метод внутреннего шаблона?
    #33824534
redskin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
4.
5.
using MyNames::SomeClass;
template<typename Type> template <typename T> Type SomeClass<Type>::HelperClass<T>::doSmth()
{
    cout << ":-)\n";
}
...
Рейтинг: 0 / 0
Как правильно реализовать метод внутреннего шаблона?
    #33826458
Фотография Gluk (Kazan)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
OpusЕсли бы его можно было делать обычным, проблемы бы и не было... Увы, его как раз нужно шаблоном делать

А смысл ? Для чего нужен шаблон метода,понятно. Для чего шаблон субкласса ??? не постиг
...
Рейтинг: 0 / 0
Как правильно реализовать метод внутреннего шаблона?
    #33826462
Фотография Gluk (Kazan)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Просьба к словам не цепляться, разумеется я имел в виду вложенное определение класса, а не что то связанное с наследованием
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / C++ [игнор отключен] [закрыт для гостей] / Как правильно реализовать метод внутреннего шаблона?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]