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

Перегруженная операция сложения - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Как научиться эффективно читать чужой код С++ http://www.cyberforum.ru/cpp-beginners/thread825533.html
Поделитесь пожалуйста опытом или просто мыслями о том, как всё таки начать разбираться в не своём коде? Может у кого-то есть какие-то наработки на этот счёт? Буду благодарен получить информацию о навыках, которые позволят за относительно небольшой срок обучиться этому скилу. Спасибо. Добавлено через 44 секунды Зы. Имеются ввиду большие аутсорсинговые проекты.
C++ траблы с fstream Всем привет! Начинаю работать над дз по проге и никак не могу разобраться с одной фишкой с fstream. Вот мои код: #include "stdafx.h" #include <iostream> #include <fstream> #include <conio.h> #include <iomanip> using namespace std; void inversion(double **A, int N) http://www.cyberforum.ru/cpp-beginners/thread825532.html
Масив принимает в 16-ричной, а выдаёт в 10-ричной C++
Народ подскажите в чом может быть проблема ? Задание :Дан массив чисел размерностью 10 элементов. Написать функцию, которая сортирует массив по возрастанию или по убыванию, в зависимости от третьего параметра функции. Если он равен 1, сортировка идет по убыванию, если 0, то по возрастанию. Первые 2 параметра функции - это массив и его размер, третий параметр по умолчанию равен 1. Вопрос: У...
C++ Можно ли в цикле for устанавливать переменное значение инициализатора?
Ну вот мне позарез надо сделать так: int j=(23-posl); for (i=j;i>=0;i--) cout << c; так нельзя? а мне очень нужно. что можно сделать? если вместо j поставить число то все работает правильно. А так работает, но неправильно.
C++ Некорректный вывод в Borland 3.1 http://www.cyberforum.ru/cpp-beginners/thread825528.html
пытаюсь разобраться с деревом.написал программу для ввода и вывода.она почему то криво выводит.вот скрин.программа Borland 3.1 http://files.mail.ru/FB8555C2A8AD4BCEA9DE2BB50E37CA0D вот код #include<iostream.h> #include<conio.h> #include<stdio.h> #include<iomanip.h> #include<string.h> #include<stdlib.h>
C++ strlen Или я дурак,или лыжи не едут??? Люди добрые, скажите чего не так. Не могу определить длину строки. Хоть вручную считай... вот код int polinom::analiz( char * stroka) { int size = 0; int i = 0; int len = strlen(stroka); // вот здесь мой код радостно падает cout << "dd - "<<len<<endl; for ( i= 0; i < len; i++) if (stroka == '+' || stroka == '-') size++; подробнее

Показать сообщение отдельно
Olivеr
 Аватар для Olivеr
411 / 407 / 13
Регистрация: 06.10.2011
Сообщений: 830
02.04.2013, 02:57     Перегруженная операция сложения
Вот мой вариант. В скобках номер вызываемой функции чтобы было понятно.
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
32
33
34
35
36
37
38
39
#include <iostream>
 
using namespace std;
 
class Integer
{
public:
    Integer(int v):val(v) {}
 
    friend const int operator+(int l,Integer &r)
    {
        cout<<"(1)";
        return l + r.val;
    }
 
    friend const int operator+(Integer &l, int r)
    {
        cout<<"(2)";
        return l.val + r;
    }
 
    friend const int operator+(Integer &l,Integer &r)
    {
        cout<<"(3)";
        return l.val + r.val;
    }
 
private:
    int val;
};
 
int main()
{
    Integer a(5), b(4), c(1), d(2);
    cout<<a+b<<endl;
    cout<<a+b+c<<endl;
    cout<<4+a+b+c+d+1<<endl;
    return 0;
}
Добавлено через 1 минуту
Если разобрать
C++
1
cout<<4+a+b+c+d+1<<endl;
то получим действия:
1)4 + a (инт + класс), получаем инт
2)инт + b (инт + класс), получаем инт
...
4)инт + d (инт + класс), получаем инт
5)инт + инт = инт
 
Текущее время: 05:17. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru