Форум программистов, компьютерный форум CyberForum.ru

Определение типа члена шаблонного класса - C++

Войти
Регистрация
Восстановить пароль
 
Gorillych
14 / 14 / 1
Регистрация: 04.07.2013
Сообщений: 76
13.07.2013, 21:24     Определение типа члена шаблонного класса #1
Такая проблема. Есть шаблонный класс с членом - указателем, тип которого должен определяться в зависимости от параметра шаблона:
C++
1
2
3
4
5
6
template<typename Type>
class MyClass
{
public:
    undefined_type *ptr;//Тип указателя зависит от Type: если float, то undefined_type=SomeType1, если double, то  undefined_type=SomeType2
};
Я представляю реализацию как-то так:
C++
1
2
3
4
5
6
7
8
9
10
11
Template<typename Type>
class MyClass
{
public:
    void *ptr;
    MyClass()
    {
      if(typeid(T)==typeid(float)) ptr = reinterpret_cast<SomeType1*>(ptr);
      else if(typeid(T)==typeid(double)) ptr = reinterpret_cast<SomeType2*>(ptr);
    }
};
Но мне кажется это не совсем правильно.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.07.2013, 21:24     Определение типа члена шаблонного класса
Посмотрите здесь:

Определение члена класса C++
C++ Перегрузка оператора шаблонного класса в зависимости от типа
C++ Выбор типа переменной-члена класса в зависимости от параметров передаваемых конструктору
C++ Определение методов шаблонного класса
C++ Хранение вектора экземпляров шаблонного класса неизвестного типа
C++ Различное поведение конструктора шаблонного класса в зависимости от типа параметра
Вызов метода у шаблонного поля, шаблонного класса C++
C++ Объявление и определение шаблонного класса
Написать определение класса leverage, включающего одно закрытое поле типа int с именем crowbar и одним открыты C++
Инициализация статического члена из шаблонного класса C++
C++ Использование шаблонного типа в shared_ptr
C++ Чем отличается шаблонный метод класса от шаблонного класса?

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Jupiter
Каратель
Эксперт C++
6545 / 3965 / 226
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
13.07.2013, 21:31     Определение типа члена шаблонного класса #2
читайте про специализацию шаблонов.
и вам уже дали ещё одно решение тут
Croessmah
Модератор
Эксперт С++
 Аватар для Croessmah
12291 / 6978 / 784
Регистрация: 27.09.2012
Сообщений: 17,288
Записей в блоге: 2
Завершенные тесты: 1
13.07.2013, 21:32     Определение типа члена шаблонного класса #3
а такой вариант?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
template < typename T >
struct sub_obj{
    typedef T undefined_type;
};
 
template <>
struct sub_obj<float>{
    typedef short undefined_type;
};
 
template <>
struct sub_obj<double>{
    typedef unsigned char undefined_type;
};
 
 
template<typename Type>
class MyClass
{
public:
    typename sub_obj<Type>::undefined_type *ptr;//Тип указателя зависит от Type: если float, то undefined_type=SomeType1, если double, то  undefined_type=SomeType2
};
Yandex
Объявления
13.07.2013, 21:32     Определение типа члена шаблонного класса
Ответ Создать тему
Опции темы

Текущее время: 03:19. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru