Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 28.04.2018, 13:51   #1
NDrago
Пользователь
 
Регистрация: 22.09.2017
Сообщений: 45
По умолчанию Перегрузка шаблона типа

Всем доброе время суток,вопрос вот в чем заключается,как перегрузить шаблон типа?

функция
template <class T>
Complex<T>:: operator T() {
}

вызов
cout << static_cast<double>(c5) << endl;
NDrago вне форума Ответить с цитированием
Старый 28.04.2018, 14:30   #2
waleri
Старожил
 
Регистрация: 13.07.2012
Сообщений: 6,330
По умолчанию

Приведите результат к типу T и верните return-ом либо пишите специализации шаблона для нужных типов:
Код:
template <>
Complex::operator double() { ... }

Последний раз редактировалось waleri; 28.04.2018 в 14:34.
waleri вне форума Ответить с цитированием
Старый 28.04.2018, 14:43   #3
NDrago
Пользователь
 
Регистрация: 22.09.2017
Сообщений: 45
По умолчанию

Цитата:
Сообщение от waleri Посмотреть сообщение
Приведите результат к типу T и верните return-ом либо пишите специализации шаблона для нужных типов:
Код:
template <>
Complex::operator double() { ... }
можно поподробнее с приводом результата к типу Т?
NDrago вне форума Ответить с цитированием
Старый 28.04.2018, 14:59   #4
waleri
Старожил
 
Регистрация: 13.07.2012
Сообщений: 6,330
По умолчанию

static_cast<T>(тут_ваши_данные)
waleri вне форума Ответить с цитированием
Старый 28.04.2018, 17:07   #5
NDrago
Пользователь
 
Регистрация: 22.09.2017
Сообщений: 45
По умолчанию

template <class T>
Complex<T>:perator T() {
return static_cast<T>(Pair->first,Pair->second);
}

Ошибка
complex.cpp:33:31: error: invalid static_cast from type ‘Complex<int>’ to type ‘double’
cout << static_cast<double>(c5) << endl;
^

что-то не выходит,то ли я тупой,то ли лыжи не едут (((
NDrago вне форума Ответить с цитированием
Старый 28.04.2018, 17:23   #6
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,707
По умолчанию

Начнем с простого: что вы подразумевали под
Код:
static_cast<T>(Pair->first,Pair->second)
когда T, например, int или double?
p51x вне форума Ответить с цитированием
Старый 28.04.2018, 17:35   #7
NDrago
Пользователь
 
Регистрация: 22.09.2017
Сообщений: 45
По умолчанию

Цитата:
Сообщение от p51x Посмотреть сообщение
Начнем с простого: что вы подразумевали под
Код:
static_cast<T>(Pair->first,Pair->second)
когда T, например, int или double?
так в том то и проблема,я не понимаю как это работает, я используя static_cast для обьекта класса передаю double ,вопрос,где я егол принимаю,как я его должен принимать этот тип и обрабатывать
NDrago вне форума Ответить с цитированием
Старый 28.04.2018, 17:46   #8
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,707
По умолчанию

У вас какая-то путаница в голове. Что вы куда передаете?
Операторы приведения типа вызываются, когда ваш класс приводится к какому-то типу. Естественно, у него есть (ему передается) объект вашего класса и вы должны вернуть нужный тип.
Повторю вопрос: что вы понимаете (представляете, хотите записать) под приведением вашего комплексного числа к инту или даблу?
p51x вне форума Ответить с цитированием
Старый 28.04.2018, 17:55   #9
NDrago
Пользователь
 
Регистрация: 22.09.2017
Сообщений: 45
По умолчанию

это тестовый класс комплексных чисел,поэтому созданный ранее обьект класса как инт вывести в формате дабл в поток выводы
NDrago вне форума Ответить с цитированием
Старый 28.04.2018, 17:58   #10
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,707
По умолчанию

Еще раз: ваш класс, состоящий из ДВУХ чисел, приводят к ОДНОМУ числу типа int или double. Напишите формулу
Цитата:
ЧИСЛО = first (какие-то операции) second.
p51x вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Создание шаблона класса с 1 параметром типа Valera97 Общие вопросы C/C++ 0 13.06.2017 14:24
Вывод типа возвращаемого значения шаблона Aoizora Общие вопросы C/C++ 2 02.06.2017 21:00
получение ссылки на функцию из класса шаблона и передача ее как параметр шаблона pror0ck Общие вопросы C/C++ 7 17.06.2012 15:06
Использование файлов XLS в качестве шаблона и отображение этого шаблона в приложении Delphi? vodyara Общие вопросы Delphi 0 23.04.2012 13:13
Перегрузка бинарных арифметических операторов шаблона класса NecroArt Помощь студентам 2 10.08.2010 21:31