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

При перегрузке оператора для класса не получается использовать имя переменной такое же, как в описании класса - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Как обьявляется функция? http://www.cyberforum.ru/cpp-beginners/thread44989.html
Как объявить функцию в С++ Builder??? Например в Delphi это делается так : type TForm1 = class(TForm) function MyFunction(keyword : string) : longint; Потом нажимается сочетание клавиш Ctrl + Shift + C
C++ Объявление типов в h.-файлах Нужно объвить несколько переменных нестандартного типа (этот тип объявлен в библиотеке DirectX), компилятор ругается! Получается только с типом (int)! Подскажите примерчик с объявлением нестандартного типа! http://www.cyberforum.ru/cpp-beginners/thread44936.html
Как в функцию передать координаты C++
Есть функция: void enemy() { SetConsoleCursorPosition(console,coord1); cout << ' ' << flush;//Стираем if(dir1 == LEFT) { if(a!=1)coord1.X--; else dir1 = RIGHT;
C++ Сортировка массива структур
В общем, то что в названии темы, то и не получается. Не хочет присваиваться адрес предыдущей ячейки в массиве stud1.h #include <iostream> #include <stdlib.h> using namespace std; namespace grup { struct student
C++ Вопрос по мелочи http://www.cyberforum.ru/cpp-beginners/thread44874.html
Здравсвуйте! Когда-то , недавно, мы обсуждали тему среднее арифметическое числа. Я вроде понял её, но есть маленький нюанс. Вот код: #include <iostream> using namespace std; int main() { setlocale(0,""); int i = 0; double s = 0.0, vvod; char indicator = 'y';
C++ Решить систему неравенств (результат представить в виде массива) Задали практику в С++ но учить будем ее только в сентябре поэтому прошу решить легинькую задачку на массивы вычислить Z ={ X*Y; sqr(X)+sqr(Y) <1, sqrt(X*Y); sqr(X) + sqr(Y) >= 1 при Y=-5.5, X={1.8, -1.6, ... , 1.2}. Результат представить в виде массива. sqr( ) - к квадрату подробнее

Показать сообщение отдельно
ISergey
Maniac
Эксперт С++
1346 / 879 / 51
Регистрация: 02.01.2009
Сообщений: 2,643
Записей в блоге: 1
25.07.2009, 03:01     При перегрузке оператора для класса не получается использовать имя переменной такое же, как в описании класса
В даном случаи нужно какраз возвращать временный..
вот пример
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
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
#include <iostream>
 
class Employee{
public:
    Employee(int _x = 0): x(_x){}
    Employee(const Employee &rhs){
        *this = rhs;
    }
    Employee &operator = (const Employee &rhs){
        this->x = rhs.x;
        return *this;
    }
    Employee operator - (const Employee &rhs){
        Employee temp(*this);
        temp.x -= rhs.x;
        return temp;
    }
 
    void print(){
        std::cout << "Employee::x = " << x << '\n';
    }
private:
    int x;
};
 
class Employee2{
public:
    Employee2(int _x = 0): x(_x){}
    Employee2(const Employee2 &rhs){
        *this = rhs;
    }
    Employee2 &operator = (const Employee2 &rhs){
        this->x = rhs.x;
        return *this;
    }
    Employee2 operator - (const Employee2 &rhs){
        this->x -= rhs.x;
        return *this;
    }
 
    void print(){
        std::cout << "Employee::x = " << x << '\n';
    }
private:
    int x;
};
 
int main()
{
    Employee e1(2), e2(1);
    e1 - e2;
    e1.print();
 
 
    Employee2 e12(2), e22(1);
    e12 - e22; //bug e12 is modify 
    e12.print();
    return 0;
}
 
Текущее время: 10:51. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru