Форум программистов, компьютерный форум, киберфорум
Наши страницы

Перегрузка операции = - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Длинная плавающая запятая http://www.cyberforum.ru/cpp-beginners/thread389768.html
Предположим, меня не устраивает точность double. Как сделать класс class SuperLongFloat { unsigned __int 64 Mantiss; // 256-ти битная Мантисса, старший бит - знак числа. signed int Order; //...
C++ Нужен пример функции для работы со строками Какие функции для работы со строками есть. Если не сложно можете привести пример http://www.cyberforum.ru/cpp-beginners/thread389752.html
Такие разные константы C++
Существует ли какое-нибудь правило, согласно которому можно железно определить, что вот эта константа известна на стадии компиляции (а,следовательно, может быть использована для задания размерности...
C++ Дробь
Нужен шаблон класса "дробь" с именем TFraction, подобный обыкновенной дроби в том, что данная TFraction должен иметь числитель и знаменатель, но обе эти его части могут быть любых встроенных числовых...
C++ простое число в заданном диапазоне http://www.cyberforum.ru/cpp-beginners/thread389743.html
необходимо найти наименьшее простое число в заданном диапазоне
C++ Посоветуйте литературу для олимпиадного программирования C++ Буду вам очень благодарен. Пока читаю только Окулова про алгоритмы в общем. подробнее

Показать сообщение отдельно
mc.Duck
Заблокирован
23.11.2011, 11:18
Вот схема оператора перегрузки(в твоем случае - это знак равенства):
C++
1
Имя_класса operator =(Имя_класса&);
Допустим, у тебя имеется класс "Human":
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
#include <iostream>
#include <clocale>
#include <string>
#include <iomanip>
using namespace std;
           
           class Human
           {
                 public:
                 int year;
                 char* name;
                 Human operator =(Human&);
                 Human(){name=new char[2];}
                 ~Human(){delete [] name;}
                 };
                 
                 Human Human::operator =(Human& human){
                        
                        if(this==&human) return *this;
                        delete [] name;
                        name=new char[strlen(human.name)+1];
                        strcpy(name,human.name);
                        year=human.year;
                        return *this;
                        
                                                             }
 
 
 int main(void)
 {
     setlocale(LC_ALL,"Russian");           //включаем русскую кириллицу
         
         Human n1,n2;
         n1.year=1987;
         n2.year=1968;
         n1.name="Jonh";
         n2.name="Bob";
         cout<<"1> "<<n2.year<<"  "<<n2.name<<endl;
         cout<<"2> "<<n1.year<<"  "<<n1.name<<endl;
         n1=n2;
         cout<<endl;
         cout<<"Конструктор копирования сработал!"<<endl;
         cout<<endl;
         cout<<"1> "<<n2.year<<"  "<<n2.name<<endl;
         cout<<"2> "<<n1.year<<"  "<<n1.name<<endl;
 
//cin.get();
system("Pause");
 }
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru