Можно ли передать тип данных строкой?

236
02 июня 2017, 13:24

Допустим, char *typeofdata = {"int"}, или что-то вроде этого. У меня есть шаблонный класс Arr и я передаю тип в котором нужно работать в основную функцию. Написал меню, в котором, например, 1 = int, 2 = double, 3 = float. Можно ли подать тип данных как-то так: Arr<typeofdata> myarr?

int action = menu();
switch (action) {
    case 1: {
        Array<int> myarr;
        myarr.setelem();
        myarr.show();
        myarr.searchzeroelems();
        myarr.sumofelems();
        myarr.sorting();
        myarr.show();
        break;
    }
    case 2: {
        Array<double> myarr;
        myarr.setelem();
        myarr.show();
        myarr.searchzeroelems();
        myarr.sumofelems();
        myarr.sorting();
        myarr.show();
        break;
    }
    case 3: {
        Array<float> myarr;
        myarr.setelem();
        myarr.show();
        myarr.searchzeroelems();
        myarr.sumofelems();
        myarr.sorting();
        myarr.show();
        break;
    }
}
Answer 1

Попробуйте так:

template<typename T>
void Do()
{
    Array<T> myarr; 
    myarr.setelem();
    myarr.show();
    myarr.searchzeroelems();
    myarr.sumofelems();
    myarr.sorting();
    myarr.show();
}
int action = menu();
switch (action)
{
case 1:
    Do<int>();
    break; 
case 2: 
    Do<double>();
    break; 
case 3: 
    Do<float>();
    break; 
}
READ ALSO
Подсчитать сумму в input

Подсчитать сумму в input

Есть динамическая таблица после выбора товара заплетаться сумма

493
полный перебор массива [требует правки]

полный перебор массива [требует правки]

Нужно перебрать массив из трех элементов [1, 2, 3] и на выходе получить массив с 27 перестановкамиКак это можно сделать?

246
Найти точную высоту блока

Найти точную высоту блока

На странице есть div блок с высотой в которой есть дробная частьНапример 450

319
Запуск слайда по условию

Запуск слайда по условию

Подскажите, как сделать так если пользователь перешёл по данной ссылке siteru/index

226