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

Перегрузка операторов (на примере +) - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Функция добавления в очередь, организация приоритетов в очереди http://www.cyberforum.ru/cpp-beginners/thread1155727.html
Вот функция добавления в очередь: void INSERT(TPQueue* &pbq,TPQueue* &peq, TElQ newEl) { TPQueue* el=new TPQueue; //Формируем новый элемент очереди el->info=newEl; el->next=NULL; if (!isEmpty(peq)) { //Если очередь НЕпустая peq->next=el; //Элемент заносим в очередь peq=el; //Указатель конца очереди перемещаем на новый //элемент
C++ Kanji IME словарь подстановок для японского На всякий случай решил разузнать может у кого то из форумчан имеется текстовый словарь IME подстановок для японского(пиньин не надо!). Стандартный IME от мелкософта не нужен, речь идёт о более широком проекте нежели Win. Прошу писать по делу. http://www.cyberforum.ru/cpp-beginners/thread1155713.html
C++ Написать кусок программы в соответствии с блок-схемой
Помогите пожалуйста написать кусок программы в соответствии с блок-схемой
C++ Несовпадение типов и отлов этих исключений
Доброго времени суток. Например, у меня есть переменная типа int, а в консоли я ввожу значение(cin) текстового типа. Ничего не происходит, программа аварийно не завершается int a; cin >> a; //ввожу "sadads" Но у меня программа организована циклом, и если я ввожу текстовое значение, то все последующие условия, связанные с этой переменной выполняются, например, if (a <= 0) {...} Подскажите,...
C++ Класс "Время". Как организовать функцию вывода времени и части суток http://www.cyberforum.ru/cpp-beginners/thread1155701.html
Здравствуйте! Такая проблема: как организовать функцию вывода времени и части суток (до 6:00 – ночь, до 12:00 – утро, до 18:00 – день, до 23:59:59 – вечер) и добавить к часам и минутам секунды ? И, если не сложно, посмотрите правильность работы этого класса (правильность открытия файлов через include и т.п.). time.h: //time.h #include <iostream> using namespace std; class Time{
C++ Как добавить числа в массив ? Задача такая, найти простые числа (в интервале от A до B) и вставить их в массив. Вот у меня есть такой набросок: #include <iostream> using namespace std; int simple(int p) { for(int i=2;i<= p/2;i++) if( (p%i)==0 ) return 0; return 1; подробнее

Показать сообщение отдельно
lartsevich
0 / 0 / 0
Регистрация: 23.04.2014
Сообщений: 5
24.04.2014, 00:11     Перегрузка операторов (на примере +)
Здравствуйте) подпишусь под эту тему, у меня та же проблема, только конкретно с классом комплексных чисел.
Надо, чтобы можно было делать такое присваивание:
C++
1
2
3
Complex val1(3,5);   // 3+5*i;
Complex val2;
val2 = val1 + 7;  // по идее должно быть 10+5*i
Есть перегрузка чисто сложения комплексных чисел и присваивания:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
 Complex operator + (Complex &c) // перегрузка оператора сложения
   {
      Complex temp;
 
      temp.re = re + c.re;
      temp.im = im + c.re;
 
      return temp;
   }
 
 Complex & operator = (Complex &c) // перегрузка оператора присваивания
   {
      re = c.re;
      im = c.im;
 
      return (*this);
   }
Также есть перегрузка и сложения и присваивания только для действительного числа (т.е. к комплексному прибавляем или присваиваем действительное)

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
Complex operator + (double x) //прибавление действительного числа
   {
       Complex temp;
           temp.re = re+x;
           temp.im = im;
           return temp;
   }
Complex & operator = (double x) // перегрузка оператора присваивания
      {
         re = x;
         im = 0;
         return (*this);
      }
хочется сделать что-то вроде

C++
1
2
3
4
5
6
7
Complex operator + (Complex &c, double x) //прибавление действительного и комплексного числа
     {
       Complex temp;
           temp.re = re+c.re+x;
           temp.im = im+c.im;
           return temp;
     }
но разумеется так нельзя, ошибка: error: 'Complex Complex::operator+(Complex&, double)' must take either zero or one argument

Присоединяюсь к просьбе о помощи)
 
Текущее время: 21:03. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru