3 / 3 / 1
Регистрация: 07.07.2012
Сообщений: 90
|
|
1 | |
Узнать тип переменной09.07.2012, 00:47. Показов 15978. Ответов 20
Метки нет (Все метки)
1) Как узнать тип переменной?
Что то типо такого возможно?: if ( getType(var) == "int") 2) Подскажите способы конвертирования переменных. (из int в string, наоборот, и тд...) 3) Как сделать проверку: если в textbox введена цифра, то делать что то...
0
|
09.07.2012, 00:47 | |
Ответы с готовыми решениями:
20
template, узнать тип переменной Как узнать тип переменной? Восьмибитный тип переменной (что за тип, но не BYTE и не CHAR? Узнать тип значения, зная тип указателя |
47 / 46 / 26
Регистрация: 16.06.2012
Сообщений: 177
|
|
09.07.2012, 01:22 | 2 |
0
|
3 / 3 / 1
Регистрация: 07.07.2012
Сообщений: 90
|
|
09.07.2012, 02:51 [ТС] | 4 |
Да нее... Это же ужасно! Свитч, что бы определить тип переменной... там вон 5 типов на 2 байта, как тут определишь? Нормальной функции, которая вернеет строку с названием типа переменной нету чтоль? :|
enk скинул ссылку на тему, в которой говорится, что определяют тип переменной обычно с помощью typeid, но я не понял, что и как typeid возвращает, и как его вобще использовать.
0
|
Модератор
|
|
09.07.2012, 07:04 | 6 |
А я не понял, для чего это нужно... Ладно бы еще - тип объекта. Но для чего может понадобиться определение типа переменной в рантайме - не представляю. Если бы в С++ был бы тип variant (как в VB/VBA), который мог хранить переменную любого типа - тогда, конечно. В общем автор темы лично меня заинтриговал.
0
|
3528 / 2686 / 334
Регистрация: 11.03.2009
Сообщений: 6,168
|
|
09.07.2012, 09:29 | 7 |
-=ЮрА=-, конкретный размер переменных стандартом не определен, все зависит от используемого компилятора и архитектуры.
0
|
Заблокирован
|
|||||||||||
09.07.2012, 09:53 | 8 | ||||||||||
- когда пишем на конкретном компиляторе на его величины и ориентируемся, притом всегда можно делать сравнение
Не по теме: Вот парни сами посудите число 2 - это может быть и int и short и long (конечно же + signed unsigned). Ну вот кто из вас отгадает какой тип я загадал?Ну вот тоже самое просите компилятор сделать - можно лишь получить ориентировочный тип. - да очень просто в ctype есть такая функция isdigit теперь немного поняв к чему своидиться задача (посомтреть в поле ввода ввели строку или число)скажу эта задача не требует узнавания типа переменной. Всё проще, показую на примере EditBox-а с типом CString (с конкретным типом скажем double данный контрол имеет защиту от некорректного ввода см сюда https://www.cyberforum.ru/blogs/34326/blog279.html смотрим проект MFCEnterDouble) Так вот вернусь к EditBox в котором хотим вводить дабл
0
|
Делаю внезапно и красиво
1313 / 1228 / 72
Регистрация: 22.03.2011
Сообщений: 3,744
|
|
09.07.2012, 12:13 | 9 |
Т.е. тебя не смущает, что С++ (почти) строго типизированный язык и val Имеет именно тот тип, который указан программистом при создании?
Зачем?
0
|
2381 / 1665 / 279
Регистрация: 29.05.2011
Сообщений: 3,399
|
|
09.07.2012, 13:02 | 12 |
Это char*
Добавлено через 1 минуту Deviaphan, fasked, строго типизированный, да. Но как-минимум одно место есть — шаблоны. Впрочем, определять тип в них надёжнее всего с помощью тех же шаблонов или перегрузок.
0
|
Делаю внезапно и красиво
1313 / 1228 / 72
Регистрация: 22.03.2011
Сообщений: 3,744
|
|
09.07.2012, 16:37 | 14 |
А на этот вопрос никто не ответит.) Тип данных однозначен, это char* (или wchar_t*), а уж как их интерпретировать, это совсем другой вопрос. Я могу написать код, где числом 25 будет обозначен какой-то мега-супер-большой класс. BCD число, например.
Добавлено через 59 секунд За переключение типов в шаблонах нужно пожизненно лишать программистской лицензии.)
0
|
47 / 46 / 26
Регистрация: 16.06.2012
Сообщений: 177
|
|||||||||||
09.07.2012, 18:15 | 15 | ||||||||||
1
|
Aleksej59
|
||||||
22.07.2012, 13:51 | 18 | |||||
допустим, я не хочу передавать в шаблон количество элементов массива. Как я его определю, не зная тип?
|
2381 / 1665 / 279
Регистрация: 29.05.2011
Сообщений: 3,399
|
|
22.07.2012, 13:56 | 19 |
А в чём сложность? Как ты его определишь, если тип известен? Вот так же определяй и для типа T.
0
|
Делаю внезапно и красиво
1313 / 1228 / 72
Регистрация: 22.03.2011
Сообщений: 3,744
|
|
22.07.2012, 14:02 | 20 |
А как ты узнаешь количество элементов массива, зная тип одного элемента?
И ты не с той стороны к решению проблемы подходишь. Если массив статический, то количество элементов можно выводить автоматически через параметр шаблона, если массив динамический, то тебе всё равно количество элементов (или размер в байтах) передавать нужно. Лучше озвучь изначальную проблему, потому что сейчас мы явно ищем правильное решение для не правильной проблемы. Т.е. дурью маемся.
0
|
22.07.2012, 14:02 | |
22.07.2012, 14:02 | |
Помогаю со студенческими работами здесь
20
Тип переменной тип переменной Тип переменной WIN32_FIND_DATA Тип переменной WIN32_FIND_DATA Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |