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

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

Восстановить пароль Регистрация
Другие темы раздела
C++ Длинная плавающая запятая http://www.cyberforum.ru/cpp-beginners/thread389768.html
Предположим, меня не устраивает точность double. Как сделать класс class SuperLongFloat { unsigned __int 64 Mantiss; // 256-ти битная Мантисса, старший бит - знак числа. signed int Order; // 32-х битный порядок }, чтоб оно означало Mantiss*2^{Order}, а мантисса обрабатывалась как один гигантский sigened int?
C++ Нужен пример функции для работы со строками Какие функции для работы со строками есть. Если не сложно можете привести пример http://www.cyberforum.ru/cpp-beginners/thread389752.html
Такие разные константы C++
Существует ли какое-нибудь правило, согласно которому можно железно определить, что вот эта константа известна на стадии компиляции (а,следовательно, может быть использована для задания размерности массива), а вот эта константа не является таковой (то есть, ее значение на стадии коммпиляции не известно)? Интуция и здравый смысл, конечно, хорошо, но наверно все же должно быть какое-то правило.
C++ Дробь
Нужен шаблон класса "дробь" с именем TFraction, подобный обыкновенной дроби в том, что данная TFraction должен иметь числитель и знаменатель, но обе эти его части могут быть любых встроенных числовых типов, включая действительные, а не только целыми (то есть допускается специализация на float для хранения дробей вроде \frac{25.4f}{0.01f}). Требуется поддерживать операции: +, -, *, /, +=, -=, *=,...
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");
 }
 
Текущее время: 22:36. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru