Форум программистов, компьютерный форум 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; подробнее

Показать сообщение отдельно
Nick Alte
Эксперт С++
1608 / 1000 / 118
Регистрация: 27.09.2009
Сообщений: 1,927
Завершенные тесты: 1
13.06.2012, 22:08     Простая перегрузка оператора
Если оператор - член класса, то по умолчанию первый аргумент передаётся через this. Здесь же внутри класса такой оператор не объявлен, объявлен как дружественный внешний оператор сложения. А вот реализуется не внешний оператор, а член класса. Далее, оператор сложения не должен модифицировать аргументы, он должен создавать новое значение (то есть, возвращать не ссылку, а новый объект):
C++
1
2
3
4
5
6
7
8
9
10
11
12
Drib operator+(const Drib& lhs, const Drib& rhs)
{
// За такое сложение дробей надо оставлять на второй год без разговоров
  Drib rv(lhs);
  rv.chys += rhs.chys;
  rv.znam += rhs.znam;
// Правильно будет так:
// Drib rv;
// rv.SetDrib(lhs.chys*rhs.znam + rhs.chys*lhs.znam, lhs.znam * rhs.znam);
// rv.Simplify();  // Сократить полученную дробь
  return rv;
}
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru