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

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

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 15, средняя оценка - 4.67
skelter
0 / 0 / 0
Регистрация: 25.08.2008
Сообщений: 8
#1

Определение нужного типа - C++

25.08.2008, 11:19. Просмотров 1851. Ответов 19
Метки нет (Все метки)

Всем привет
Есть такая небольшая задачка на сообразительность)
Нужно обобщить тип передаваемого аргумента, то есть в зависимости от типа аргумента (unsigned char, signed char, ...) возвращать unsigned long int, signed long int...

Вот примерный код
C++
1
2
3
4
5
6
template<typename T>
BiggerType f(T t)
{
    BiggerType bt = t;
    return bt;
}
Нужно определить BiggerT в зависимости от T. Как это сделать?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.08.2008, 11:19     Определение нужного типа
Посмотрите здесь:

Можно ли как то сделать, чтобы программа сама создавала необходимые ей переменные, нужного типа? - C++
Привет :) Учу язык С++. Добрался до темы &quot;Указатели&quot;. Теперь могу делать так, чтобы пользователь мог сам выбирать размер массива. ...

Определение типа! - C++
У меня такой вопрос. Как можно узнать какой тип вводится? Например так: int a; int b; cout &lt;&lt; &quot;Enter symbol: &quot;; cin &gt;&gt; a; ...

Определение типа окна - C++
Добрый день! А подскажите пжалста, перебираю контролы чужого окна и мне надо выбрать только поля ввода (Edit). По каким критериям их...

Определение типа масива - C++
Всем доброго времени суток. Есть программа которая проверяет антирефлективность: int main () { int n; char x; cout&lt;&lt;&quot;Enter...

Определение типа треугольника - C++
подскажите пожалуйста как узнать в программе тип треугольника? Вот код рабочий.#include &lt;iostream&gt; #include &lt;cmath&gt; using...

Определение типа микропроцессора - C++
Дан такой алгоритм: Алгоритм определения типа микропроцессора основывается на различиях в регистрах флагов (РгФ) микропроцессоров (МП)...

Определение введенного типа - C++
Задался вопросом как сделать так чтоб программа определила вводимый тип. Тоесть программа требует чтоб пользователь ввел число - а после...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
MAcK
Комбайнёр
1558 / 655 / 21
Регистрация: 27.05.2008
Сообщений: 2,535
25.08.2008, 11:21     Определение нужного типа #2
нет
Vourhey
Почетный модератор
6477 / 2252 / 123
Регистрация: 29.07.2006
Сообщений: 12,635
25.08.2008, 11:35     Определение нужного типа #3
http://www.cyberforum.ru/cpp-builder...info#post39601
С шаблонами не пробовал. Скажешь, че получится...
MAcK, че это было?
MAcK
Комбайнёр
1558 / 655 / 21
Регистрация: 27.05.2008
Сообщений: 2,535
25.08.2008, 11:43     Определение нужного типа #4
Сорри не дочитал

Добавлено через 5 минут 23 секунды
а вот это не поможет
TypeOf
Spo1ler
292 / 52 / 3
Регистрация: 22.05.2008
Сообщений: 788
25.08.2008, 18:43     Определение нужного типа #5
а перегрузкой функций? или передаются указатели?
qwone
9 / 9 / 1
Регистрация: 18.08.2008
Сообщений: 129
25.08.2008, 23:00     Определение нужного типа #6
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <iostream.h>
 
template <class T> 
T BiggerType (T t)
{
    T bt = t;
    return bt;
}
 
void main () {
    int iA=10 ; cout << "int  =" << BiggerType (iA)<<endl; 
  float fA=20.0 ; cout << "float  =" << BiggerType (fA)<<endl;  
 
}
Не знаю что skelter имел ввиду , но универсальную функцию для разных типов надо писать так . Код рабочий
skelter
0 / 0 / 0
Регистрация: 25.08.2008
Сообщений: 8
26.08.2008, 11:55  [ТС]     Определение нужного типа #7
qwone,
нет, это совсем не то. Ты написал код, который берет число к.-л. типа и тупо его же возвращает.
А я имел в виду следующее: передается число типа unsigned char (или short) -> возвращается unsigned long int, передается число типа signed char -> возвращается signed long int.

Spo1ler
Слишком много ф-ций писать придется. Нужна одна.

MAcK
ща подумаю...
skelter
0 / 0 / 0
Регистрация: 25.08.2008
Сообщений: 8
28.08.2008, 14:59  [ТС]     Определение нужного типа #8
Цитата Сообщение от MAcK Посмотреть сообщение
а вот это не поможет
TypeOf
Нет такой ф-ции в с++.

есть еще варианты?
Vourhey
Почетный модератор
6477 / 2252 / 123
Регистрация: 29.07.2006
Сообщений: 12,635
28.08.2008, 15:48     Определение нужного типа #9
skelter, ты вообще смотришь, че я те пишу?
Код
template<typename T>
void BiggerType(T t)
{
    cout<<typeid(t).name()<<endl;
}
Выведет тебе тип. Работай с этой строкой и все.
skelter
0 / 0 / 0
Регистрация: 25.08.2008
Сообщений: 8
28.08.2008, 16:34  [ТС]     Определение нужного типа #10
Vourhey,
При чем тут строка?
Как я при помощи нее смогу сделать так, чтобы функция могла возвращать разные типы?
qwone
9 / 9 / 1
Регистрация: 18.08.2008
Сообщений: 129
28.08.2008, 17:49     Определение нужного типа #11
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <iostream.h>
 
template <class T,class T2> 
T2 BiggerType (T t,T2 a)
{
 
    T2 bt = (T2)t;
    return bt;
}
 
void main () {
    
  unsigned char iA='1' ; cout << "(unsigned long int)   =" << BiggerType (iA,(unsigned long int)1)<<endl; 
  float fA=20.5 ; cout << "int  =" << BiggerType (fA,(int)1)<<endl;  
 
}
вобще немного криво но вроде работает .
Если хочешь лучше скачай книгу Шаблоны С++ там все что доктор прописал , если конечно мозг не станет.
Дэвид Вандевурд, Николай М. Джосаттис
Шаблоны C++. Справочник разработчика


http://litzona.com.ua/2008/04/01/sha...abotchika.html
skelter
0 / 0 / 0
Регистрация: 25.08.2008
Сообщений: 8
29.08.2008, 15:11  [ТС]     Определение нужного типа #12
qwone, работать то может и работает Но все же хотелось бы, чтоб функция сама определяла, что ей возвращать, а не ты ей это указывал )
MAcK
Комбайнёр
1558 / 655 / 21
Регистрация: 27.05.2008
Сообщений: 2,535
29.08.2008, 15:41     Определение нужного типа #13
Напомни в какой оболочке ты работаешь
Vourhey
Почетный модератор
6477 / 2252 / 123
Регистрация: 29.07.2006
Сообщений: 12,635
29.08.2008, 15:46     Определение нужного типа #14
Цитата Сообщение от skelter Посмотреть сообщение
qwone, работать то может и работает Но все же хотелось бы, чтоб функция сама определяла, что ей возвращать, а не ты ей это указывал )
Да как она определит тебе? Связь-то какая между твоими типами? Ты скажи, на какой основе она должна определять? Чем руководствоваться? Под каждого "определение" не сделаешь. Если это твоя логика, то прописывай ее сам ручками.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
29.08.2008, 16:18     Определение нужного типа
Еще ссылки по теме:

Определение типа предложения - C++
Всем доброго времени суток. Нужно написать программу для определения типа предложения по цели высказывания. Тоесть если введена точка -...

Определение типа данных - C++
К примеру вводим число 5, нужно определить что это тип int Если вводим какие-то символы, нужно определить, что это будет string А если...

Определение типа переменной - C++
#include &lt;iostream&gt; #include &lt;typeinfo&gt; int main() { int t = 10; std::cout &lt;&lt; typeid(t).name() &lt;&lt; std::endl; if...

Определение типа объекта - C++
Здравствуйте! Помогите пожалуйста. Есть абстрактный класс и 3 потомка. class Transport { private: string name; ...

Определение типа вводимых данных - C++
Здравствуйте. Мне, как новичку, нужна помощь. Я делаю программу для работ с функциями. В начале программа просит нажать на цифру 1, 2 или...


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

Или воспользуйтесь поиском по форуму:
skelter
0 / 0 / 0
Регистрация: 25.08.2008
Сообщений: 8
29.08.2008, 16:18  [ТС]     Определение нужного типа #15
MAcK, С++ Builder


Vourhey, как это какая связь? Я же сразу написал. Если передается unsigned char, возвращаться должен unsigned int; если signed char, то signed int.
Yandex
Объявления
29.08.2008, 16:18     Определение нужного типа
Ответ Создать тему
Опции темы

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