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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Linzman
0 / 0 / 0
Регистрация: 31.10.2012
Сообщений: 48
#1

Считывание типа данных для шаблона - C++

03.05.2013, 16:51. Просмотров 352. Ответов 3
Метки нет (Все метки)

Добрый день. Вопрос простой и состоит в следующем. Есть шаблон класса. Хочу чтобы пользователь вводил сам тип данных для своего будущего шаблона. Как потом инициализировать тип шаблона имея char* ? Просто забыл как называется данный прием в с++ и чувствую что на поиск его в страуструпе уйдет уйма времени. Заранее спасибо
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
03.05.2013, 16:51     Считывание типа данных для шаблона
Посмотрите здесь:

Как ограничить параметр типа шаблона только числовыми типами данных? - C++
Собствено, сабж. Ключевое для поиска слово хотябы.

Как сделать шаблон на считывание неизвестного типа данных? - C++
Есть размерности двумерного массива. Нужно считать с клавиатуры числа. Они могут быть как int, так и float или double. Как это сделать? ...

Явная специализация шаблона для пользовательского типа - C++
Здравствуйте! Сразу извиняюсь если вопрос покажется глупым, перечитал справочник по шаблонам, но так и не нашёл ответ. Есть шаблон класса: ...

Параметры типа класса шаблона - C++
смотрите был такой код в файле заголовочном: template <typename DataType> class CircleList { ..................... а преподаватель...

Объявление параметра типа шаблона дружественным - C++
Объясните, что значит friend Type?

sort для своего типа данных - C++
#include <iostream> #include <vector> #include <algorithm> using namespace std; class foo { public: foo() : v(0)...

Реализовать библиотеку для типа данных float16 - C++
Задача: реализовать библиотеку для типа данных float16 (half float) и функционал конвертации float32 в float16 и обратно. Так же...

Есть ли функция для печати типа данных ? - C++
Пример char* a; cout<<функция(a); Окно консоли: char*

Реализуйте АТД “Список” для любого типа данных - C++
Помогите решить задачку. 1. Реализуйте АТД “Список” для любого типа данных и его операторы (INSERT, LOCATE, RETRIEVE, DELETE, NEXT,...

Создание типа данных для чисел определенного размера - C++
Здравствуйте. Столкнулся с проблемой работы с большими числами на разных архитектурах. На х64 размер long = 8. На х32 = 4. Мне нужно что бы...

Реализовать функции для проверки битового представления типа данных - C++
Для типа данных int Необходимо реализовать функции для: 1. Проверки битового представления типа данных. Функция должна возвращать...

Как задать границу для типа данных unsigned char*? - C++
У меня есть двумерный массив значений типа unsigned char*, диапазон значений которого 0 - 255. Как задать условие, чтобы при увеличении на...


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Kastaneda
Форумчанин
Эксперт С++
4479 / 2841 / 227
Регистрация: 12.12.2009
Сообщений: 7,224
Записей в блоге: 1
Завершенные тесты: 1
03.05.2013, 17:13     Считывание типа данных для шаблона #2
Цитата Сообщение от Linzman Посмотреть сообщение
Хочу чтобы пользователь вводил сам тип данных для своего будущего шаблона.
Так сделать неполучится, параметр шаблона должен быть известен во время компляции.
Linzman
0 / 0 / 0
Регистрация: 31.10.2012
Сообщений: 48
03.05.2013, 17:17  [ТС]     Считывание типа данных для шаблона #3
Kastaneda, Спасибо, просто слышал что что-то подобное можно делать в с++ но не уверен что применительно к шаблонам
Kastaneda
Форумчанин
Эксперт С++
4479 / 2841 / 227
Регистрация: 12.12.2009
Сообщений: 7,224
Записей в блоге: 1
Завершенные тесты: 1
03.05.2013, 17:20     Считывание типа данных для шаблона #4
Можно сделать такой костыль
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
#include <iostream>
#include <string>
#include <typeinfo>
 
class Base
{
public:
    virtual ~Base() {};
};
 
template <class T>
class Derived : public Base
{
public:
    Derived () 
    {
        std::cout << "Constructor " << typeid(T).name() << std::endl;
    }
};
 
 
int main()
{
    std::string argument;
    std::cin >> argument;
    
    Base *ptr;
    if (argument == "int") {
        ptr = new Derived<int>();
    } else if (argument == "char") {
        ptr = new Derived<char>();
    } // else if и т.д.
}
Yandex
Объявления
03.05.2013, 17:20     Считывание типа данных для шаблона
Ответ Создать тему
Опции темы

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