Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
1 / 1 / 0
Регистрация: 12.09.2015
Сообщений: 38

Перегрузка оператора присваивания

24.10.2015, 21:33. Показов 759. Ответов 1
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
мне надо было реализовать
конструкторы, деструктор, оператор присваивания, функции ввода / вывода объектов;

кто сможет дописать прогу?
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
#include <iostream>
 
using namespace std;
class Line{
    float a,b,c;
public:
    void input(){
        cout<<"Enter a b c "<<endl;
        cin>>a>>b>>c;
    }
    void output(){
        cout<<"a="<<a<<";b= "<<b<<" ; c= "<<c<<endl;
    }
    int getLine(){
        return this->a;
    }
    Line(){
        this->a=2;
        this->b=3;
        this->c=4;
    }
    Line(float a,float b,float c){
       a=-3;
       b=4;
      c=5;
    }
    ~Line(){
        cout<<"destructor"<<endl;
    }
    Line(Line&original){
        this->a=original.a;
        this->b=original.b;
        this->c=original.c;
    }
 
};
 
int main()
{
    Line l1,l2;
    l1.input();
    l1.output();
 
    return 0;
}
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
24.10.2015, 21:33
Ответы с готовыми решениями:

Перегрузка оператора присваивания
Добрый вечер. Есть задание: Нужно так перегрузить оператор =, чтобы можно было элементу одного класса, присваивать значение элемента...

Перегрузка оператора присваивания
Здравствуйте! Помогите, пожалуйста разобраться с перегрузкой оператора присваивания. Нужно написать класс матрица, в котором есть...

Перегрузка оператора присваивания
Доброго времени суток! Возник вопрос по поводу перегрузки оператора присваивания. Пример перегрузки по канону: class Integer { ...

1
19 / 19 / 16
Регистрация: 17.08.2015
Сообщений: 125
25.10.2015, 00:22
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
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
#include <iostream>
 
using namespace std;
class Line{
    float a,b,c;
public:
    void input(){
        cout<<"Enter a b c "<<endl;
        cin>>a>>b>>c;
    }
    void output(){
        cout<<this<<": "<<"a= "<<a<<"; b= "<<b<<"; c= "<<c<<endl;
    }
    int getLine(){
        return this->a;
    }
    Line():a(2),b(3),c(4){} //конструктор по умолчанию
    Line(float a,float b,float c){ //конструктор с параметрами
        this->a=a;
        this->b=b;
        this->c=c;
    }
    ~Line(){
        cout<<this<<": "<<"destructor"<<endl;
    }
    Line & operator=(const Line & Right){ //перегрузка оператора "присвоить"
       
        if (this != &Right) //проверяем если нам не дали самого себя
        {
            this->a=Right.a;
            this->b=Right.b;
            this->c=Right.c;
        }
        
        return *this;
    }
 
};
 
int main()
{
 
    cout<<"------------ Line 1 -------------"<<endl;
    Line l1;
    l1.output();
    l1.input();
    l1.output();
    cout<<"------------ Line 1 -------------"<<endl;
    cout<<endl;
 
    cout<<"------------ Line 2 -------------"<<endl;
    Line l2(3,-4,7);
    l2.output();
    l2.input();
    l2.output();
    cout<<"------------ Line 2 -------------"<<endl;
    cout<<endl;
 
    cout<<"------------ Line 3 -------------"<<endl;
    Line l3(l1);
    l3.output();
    cout<<"------------ Line 3 -------------"<<endl;
    cout<<endl;
 
    cout<<"------------ Line 4 -------------"<<endl;
    Line l4(-6,-6,-6);
    l4.output();
    cout<<"------------ Line 4 -------------"<<endl;
    cout<<endl;
 
    cout<<"-------- Line 4 = Line 3 --------"<<endl;
    l4=l3;
    l1.output();
    cout<<"-------- Line 4 = Line 3 --------"<<endl;
    cout<<endl;
 
    return 0;
}
Добавлено через 12 минут
Преписал более коректно (со всеми конструкторами)
Администрацию прошу удалить мое предыдущее сообщение.

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
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
#include <iostream>
 
using namespace std;
class Line{
    float a,b,c;
public:
    void input(){
        cout<<"Enter a b c "<<endl;
        cin>>a>>b>>c;
    }
    void output(){
        cout<<"output()"<<": "<<"a= "<<a<<"; b= "<<b<<"; c= "<<c<<endl;
    }
    int getLine(){
        return this->a;
    }
    Line():a(2),b(3),c(4){ //конструктор по умолчанию
        cout<<"default constructor "<<this<<endl;
    } //конструктор по умолчанию
    Line(float a,float b,float c){ //конструктор с параметрами
        this->a=a;
        this->b=b;
        this->c=c;
        cout<<"parametr constructor "<<this<<endl;
    }
    Line (const  Line & Right){//конструктор копирования
        this->a=Right.a;
        this->b=Right.b;
        this->c=Right.c;        
        cout<<"copy constructor "<<this<<endl;
    }
    ~Line(){
        cout<<this<<": "<<"destructor"<<endl;
    }
    Line & operator=(const Line & Right){ //перегрузка оператора "присвоить"
       
        if (this != &Right) //проверяем если нам не дали самого себя
        {
            this->a=Right.a;
            this->b=Right.b;
            this->c=Right.c;
        }
        cout<<"operator (=) "<<this<<endl;
        return *this;
    }
 
};
 
int main()
{
 
    cout<<"------------ Line 1 -------------"<<endl;
    Line l1;
    l1.output();
    l1.input();
    l1.output();
    cout<<"------------ Line 1 -------------"<<endl;
    cout<<endl;
 
    cout<<"------------ Line 2 -------------"<<endl;
    Line l2(3,-4,7);
    l2.output();
    l2.input();
    l2.output();
    cout<<"------------ Line 2 -------------"<<endl;
    cout<<endl;
 
    cout<<"------------ Line 3 -------------"<<endl;
    Line l3(l1);
    l3.output();
    cout<<"------------ Line 3 -------------"<<endl;
    cout<<endl;
 
    cout<<"------------ Line 4 -------------"<<endl;
    Line l4(-6,-6,-6);
    l4.output();
    cout<<"------------ Line 4 -------------"<<endl;
    cout<<endl;
 
    cout<<"-------- Line 4 = Line 3 --------"<<endl;
    l4=l3;
    l1.output();
    cout<<"-------- Line 4 = Line 3 --------"<<endl;
    cout<<endl;
 
    return 0;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
25.10.2015, 00:22
Помогаю со студенческими работами здесь

Перегрузка оператора присваивания
struct pointer_command { public: void * x; public: void set(void * y){x = y; } void operator = (void * y ) {x = y;} void*...

Перегрузка оператора присваивания
Доброго времени суток всем! Никак не могу правильно написать перегрузку оператора присваивания. При создании одного нового элемента...

Перегрузка оператора присваивания
Вот есть такой класс template&lt;typename TT&gt; class Matrix { public: ...

Перегрузка оператора присваивания
Добрый вечер ! Нужна помощь по небольшому теоретико-практическому вопросу. Опять же вопрос по примеру из книги Шилдта С++ Базовый курс....

Перегрузка оператора присваивания
MyArray&amp; operator=( MyArray &amp;arrInt2 ) //Зачем писать MyArray&amp; operator?А почему не MyArray operator ? { delete ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
Мысли в слух. Про "навсегда".
kumehtar 16.04.2026
Подумалось тут, что наверное очень глупо использовать во всяких своих установках понятие "навсегда". Это очень сильное понятие, и я только начинаю понимать край его смысла, не смотря на то что давно. . .
My Business CRM
MaGz GoLd 16.04.2026
Всем привет, недавно возникла потребность создать CRM, для личных нужд. Собственно программа предоставляет из себя базу данных клиентов, в которой можно фиксировать звонки, стадии сделки, а также. . .
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . . а удачный момент так и не приходит.
Фиксация колонок в отчете СКД
Maks 14.04.2026
Фиксация колонок в СКД отчета типа Таблица. Задача: зафиксировать три левых колонки в отчете. Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка) / / . . .
Настройки VS Code
Loafer 13.04.2026
{ "cmake. configureOnOpen": false, "diffEditor. ignoreTrimWhitespace": true, "editor. guides. bracketPairs": "active", "extensions. ignoreRecommendations": true, . . .
Оптимизация кода на разграничение прав доступа к элементам формы
Maks 13.04.2026
Алгоритм из решения ниже реализован на нетиповом документе, разработанного в конфигурации КА2. Задачи, как таковой, поставлено не было, проделанное ниже исключительно моя инициатива. Было так:. . .
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: реализовать контроль корректности заполнения дат назначения. . .
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru