![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Пользователь
Регистрация: 22.09.2017
Сообщений: 45
|
![]()
Всем доброе время суток,вопрос вот в чем заключается,как перегрузить шаблон типа?
функция template <class T> Complex<T>:: operator T() { } вызов cout << static_cast<double>(c5) << endl; |
![]() |
![]() |
![]() |
#2 |
Старожил
Регистрация: 13.07.2012
Сообщений: 6,372
|
![]()
Приведите результат к типу T и верните return-ом либо пишите специализации шаблона для нужных типов:
Код:
Последний раз редактировалось waleri; 28.04.2018 в 14:34. |
![]() |
![]() |
![]() |
#3 |
Пользователь
Регистрация: 22.09.2017
Сообщений: 45
|
![]() |
![]() |
![]() |
![]() |
#4 |
Старожил
Регистрация: 13.07.2012
Сообщений: 6,372
|
![]()
static_cast<T>(тут_ваши_данные)
|
![]() |
![]() |
![]() |
#5 |
Пользователь
Регистрация: 22.09.2017
Сообщений: 45
|
![]()
template <class T>
Complex<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; ^ что-то не выходит,то ли я тупой,то ли лыжи не едут ((( |
![]() |
![]() |
![]() |
#6 |
Старожил
Регистрация: 15.02.2010
Сообщений: 15,830
|
![]()
Начнем с простого: что вы подразумевали под
Код:
|
![]() |
![]() |
![]() |
#7 |
Пользователь
Регистрация: 22.09.2017
Сообщений: 45
|
![]()
так в том то и проблема,я не понимаю как это работает, я используя static_cast для обьекта класса передаю double ,вопрос,где я егол принимаю,как я его должен принимать этот тип и обрабатывать
|
![]() |
![]() |
![]() |
#8 |
Старожил
Регистрация: 15.02.2010
Сообщений: 15,830
|
![]()
У вас какая-то путаница в голове. Что вы куда передаете?
Операторы приведения типа вызываются, когда ваш класс приводится к какому-то типу. Естественно, у него есть (ему передается) объект вашего класса и вы должны вернуть нужный тип. Повторю вопрос: что вы понимаете (представляете, хотите записать) под приведением вашего комплексного числа к инту или даблу? |
![]() |
![]() |
![]() |
#9 |
Пользователь
Регистрация: 22.09.2017
Сообщений: 45
|
![]()
это тестовый класс комплексных чисел,поэтому созданный ранее обьект класса как инт вывести в формате дабл в поток выводы
|
![]() |
![]() |
![]() |
#10 | |
Старожил
Регистрация: 15.02.2010
Сообщений: 15,830
|
![]()
Еще раз: ваш класс, состоящий из ДВУХ чисел, приводят к ОДНОМУ числу типа int или double. Напишите формулу
Цитата:
|
|
![]() |
![]() |
![]() |
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Создание шаблона класса с 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 |