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

постфиксная перегрузка поная запись - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ функции и матрицы http://www.cyberforum.ru/cpp-beginners/thread810711.html
всем привет! задание следующее: Написать функции: 1. создания матрицы размерности , элементы матрицы А – вещественные числа. Параметры функции – сама матрица, ее размерность. 2. печати матрицы. Параметры функции – сама матрица, ее размерность. 3. поиска суммы положительных элементов матрицы. для начала написал без функций, создает и печатает без проблем. Написал с функцией и крах......
C++ Внезапное прекращение работы программы #include<iostream> #include<cstdlib> #include<conio.h> #include<ctime> using namespace std; int* elp(int *A,int *n,int e) //Добавление элемента в начало массива { *n++; http://www.cyberforum.ru/cpp-beginners/thread810694.html
Пятерки C++
Задано натуральное N. Требуется написать программу, которая определит количество цифр 5 в записи всех натуральных чисел от 1 до N включительно. Входные данные Во входном файле INPUT.TXT в единственной строке задается число N <= 10^18. Выходные данные В выходной файл OUTPUT.TXT записывается найденное число – количество пятерок.
Транспонирование матриц. Вынести часть кода в отдельную функцию C++
/* транспонировать матрицу, используя функции. я матрицу транспонировал, а через функцию не знаю как правильно делать, нужна помощь */ #include<iostream.h> #include<conio.h> #include<stdlib.h> main() { clrscr(); randomize();
C++ Вывод на экран чётных слов строки исправить на вывод нечётных слов http://www.cyberforum.ru/cpp-beginners/thread810681.html
#include<conio.h> #include<iostream.h> #include<string.h> #include<stdio.h> int i,l,j,k,p,n; char txt; char a,b; main() { clrscr();
C++ Перегрузка + код: #include <iostream> #include <vector> using namespace std; template <class T > class theMatrix { vector<vector<T > > *matrix; подробнее

Показать сообщение отдельно
ninja2
230 / 186 / 7
Регистрация: 26.09.2012
Сообщений: 2,018
Завершенные тесты: 1

постфиксная перегрузка поная запись - C++

17.03.2013, 10:05. Просмотров 337. Ответов 2
Метки (Все метки)

Здарова!

создал класс Int2 как бы моделирующий int в нем решил перегрузить все операторы которые токо есть с вызовом в короткой форме и в полной.

оператор постфиксный ++ перегрузил так
C++
1
2
3
4
Int2 operator++(int)
{
  return val++; //это открытый член-значение класса.
}
делаю вызов
с=с+ a++; все нормально работает с постинкрементом. все как положено.
записываю в полной записи:
c.operator=(operator+(c, a.operator++(0) ));//owibka
говорит ошибка в функции operator+ определение данной функции, функция глобальная не классовая
C++
1
2
3
4
Int2 operator+(Int2& a, Int2& b)
{
  return a.val+b.val;
}
а ошибка в том, что второй аргумент должен быть ссылкой, а функция a.operator++(int) возвращает не ссылку, а копию а, ведь постинкремент.
Тогда спрашивается почему же короткая записть c=c+a++; работает,
а как бы полная c.operator=(operator+(c, a.operator++(0) )); нет
Видимо либо запись неправильная, либо c=c+a++ как то обманывает функцию Int2 operator+(Int2&, Int2&), функция считает, что попала ссылка, а ей новый объект подсунули.

Просветите новичка!

п.с. тупой наверно вопрос
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru