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

Простая перегрузка оператора - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Структура unicode_string http://www.cyberforum.ru/cpp-beginners/thread604900.html
Помогите разобраться со структурой UNICODE_STRING. Вот ее код: typedef struct _LSA_UNICODE_STRING { USHORT Length; USHORT MaximumLength; #ifdef MIDL_PASS #endif // MIDL_PASS PWSTR Buffer; } LSA_UNICODE_STRING, *PLSA_UNICODE_STRING;Нужно переписать ее на другой язык программирования и с этим есть проблемы. 1. Что за константа MIDL_PASS и в каких случаях она будет...
C++ Вычислить сумму ряда с заданной точностью работает только при значениях: 0, 1, -1, при остальных значениях не работает. Подскажите пожалуйста в чем проблема. Условие: Даны действительные числа x и ε. Вычислить с заданной точностью E=10^(-4) сумму ряда: s=1+nx+((n(n+1))/2!)*x^2+((n(n+1)(n+2))/3!)*x^3+((n(n+1)(n+2)(n+3))/4!)*x^4+... при #include <iostream> #include <cmath> using namespace std; double f(double x, double E); int... http://www.cyberforum.ru/cpp-beginners/thread604896.html
Считывание большого файла(~1гиг) C++
нужно считать текст из большого файла по 1мб так, чтобы потом можно было потом обрабатывать строки(фильтровать). использовать функции библиотеки string нельзя. писала так while(!feof(f)){ str=""; while(!n==mb||!feof(f)){ c = fgets(line,1000000,f); w=strncat(str, line, strlen(line)); str+=line; i++; n=strlen(str);}} мне сказали так нельзя. нужно как то сделать с помощью функций read и...
C++ задача с массивами:)
Умоляю,помогите решить задачу:)пожалуйста,никак не могу сам сделать:(а сроки поджимают:(Дан массив целых чисел в количестве 16 элементов. Найти такие элементы (а также их сумму), которые состоят из двух равных частей и имеют в своем составе цифру 3. Пример: 4343 9131 33 3313 646 3223 1313; результат: 4343+1313=5656.
C++ Где здесь ошибка? http://www.cyberforum.ru/cpp-beginners/thread604862.html
Делаю все по видео уроку. У него работает все нормально у меня жалуется #include <allegro.h> #define MAXFILAS 20 // X #define MAXCOLS 31 // y BITMAP *buffer; BITMAP *roca; char mapa ={ "XXXXXXXXXXXXXXXXXXXXXXXXXXXXX", "X XXXXX X",
C++ Переписать через указатели помогите написать эту программу с помощью указателей #include <iostream> #include <cstdlib> #include <ctime> using namespace std; int main() { int n=5; подробнее

Показать сообщение отдельно
molny
 Аватар для molny
0 / 0 / 0
Регистрация: 20.05.2010
Сообщений: 6
13.06.2012, 21:37     Простая перегрузка оператора
Доброго времени суток. Как и многие в этом разделе прошу о помощи. Преподавателем была поставлена задача создать класс "Дробь", далее же маразматическое условие перегрузить оператор сложения (просто сложить числитель и знаменатель каждой дроби не приводя их к общему знаменателю). Вроде бы старался придерживаться примерам, показанным в литературе, однако при компилировании ниже указанного кода получаю ошибку:

/home/molny/projects/Overloading/main.cpp:16:39: error: ‘Drib& Drib::operator+(Drib&, Drib&)’ must take either zero or one argument
Оператор сложения ведь бинарный, но почему тогда сообщается о "must take one argument"?! Буду очень признателен всем за помощь.

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
#include <iostream>
using namespace std;
 
class Drib {
public:
  friend Drib& operator+(Drib&, Drib&);
  int chys, znam;
  void SetDrib(int a, int b) { chys=a; znam=b; }
  void GetDrib() { cout<<chys<<"/"<<znam<<endl; }
} first, second, summ;
 
Drib& Drib::operator+(Drib& c, Drib& d)
{
  Drib temp;
  temp.chys=c.chys+d.chys;
  temp.znam=c.znam+d.znam;
  return temp;
}
 
int main(int argc, char **argv) {
    first.SetDrib(1,2);
    second.SetDrib(3,4);
    summ=first+second;
    return 0;
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 07:28. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru