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

Перегрузка оператора "+" в шаблоне класса - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Как писать в привычных для нас окнах? http://www.cyberforum.ru/cpp-beginners/thread153741.html
Только начинаю изучать с++, во всех учебниках (которые я скачал) учат писать в консоли Как писать в окнах(с формой)
C++ Таблица ввода и вывода символов где то видел что есть таблица в которой показана какие цифры надо вводить в пограмме для разных букв. вродебы это atsi ещё помню что буква э там значится как -83. если поняли о чём речь можете выложить эту таблицу http://www.cyberforum.ru/cpp-beginners/thread153723.html
Определить каталог запуска C++
Доброе время суток, форумчане, вопрос такой: как определить из программы путь, откуда она запущена? (C++) излазил интернет, решения только под c++ builder...
C++ Создание документа в MFC и Win32
Как создать на с++ документы из программы если нужно написать программу MFC Аналогичный вопрос относительно WIN 32
C++ Работа со списками http://www.cyberforum.ru/cpp-beginners/thread153703.html
Пожалуйста помогите реализовать на С++ т.к я затрудняюсь с этим заданием (буду очень сильно признателен)??? Задание: Добавить одну вершину в граф таким образом,чтобы этот список стал пуст.
C++ Двусвязные списки, найти ошибку в коде Помогите найти ошибку в коде, двусвязные списки. Программа работает, но выскакивает ошибка на деструкторе, в котором прописано удаление списка, не могу понять в чем ошибка, помогите пожалуйста. #include<iostream> #include<time.h> using namespace std; template <typename T> struct Elem { T *mass; подробнее

Показать сообщение отдельно
ForEveR
Модератор
Эксперт C++
 Аватар для ForEveR
7927 / 4709 / 318
Регистрация: 24.06.2010
Сообщений: 10,524
Завершенные тесты: 3
15.07.2010, 07:58     Перегрузка оператора "+" в шаблоне класса
kekcuko, Вполне логично что не работает. Таким образом только с одинаковым типом по идее.

Добавлено через 1 минуту
Можно вот так... Неявно преобразует к типу int...

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
#include <iostream> 
#include <conio.h>
 
using namespace std;
 
template <class T>
class about
{ public:
T a;
template <class T>
T operator +(about<T> cl)
{
if (exact(this->a)) return static_cast<int>(this->a+cl.a);
else {cout<<"E"; return static_cast<int>(this->a+cl.a);}
}
 
bool exact(T num)
{
return num==static_cast<int>(num) ? true : false;
}
};
 
void main()
{ 
about<int> a_cl;
a_cl.a=2.5;
about<double> b_cl;
b_cl.a=2;
cout<<a_cl+b_cl;
getch();
}
 
Текущее время: 11:37. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru