Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / C++ [игнор отключен] [закрыт для гостей] / Как правильно реализовать метод внутреннего шаблона? / 6 сообщений из 6, страница 1 из 1
28.06.2006, 19:15
    #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
29.06.2006, 22:56
    #33822967
funikovyuri
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как правильно реализовать метод внутреннего шаблона?
Opus
Шаблоны SomeClass и HelperClass должны быть одного типа (HelperClass играет роль вспомогательного для SomeClass).

Если я правильно понял, то у вас HelperClass должен быть обычным, а не шаблонным, тогда все получится
...
Рейтинг: 0 / 0
30.06.2006, 11:34
    #33823684
Opus
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как правильно реализовать метод внутреннего шаблона?
Если бы его можно было делать обычным, проблемы бы и не было... Увы, его как раз нужно шаблоном делать
...
Рейтинг: 0 / 0
30.06.2006, 15:07
    #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
03.07.2006, 08:34
    #33826458
Gluk (Kazan)
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как правильно реализовать метод внутреннего шаблона?
OpusЕсли бы его можно было делать обычным, проблемы бы и не было... Увы, его как раз нужно шаблоном делать

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


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