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

Сравнение обьекта - C++

Восстановить пароль Регистрация
 
Dimka-novitsek
14 / 14 / 0
Регистрация: 26.04.2012
Сообщений: 1,091
25.11.2013, 23:13     Сравнение обьекта #1
Почему тут(39) написано if (this == &rhs) а не if (this == rhs)?


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
// Листинг 10.15.
  
 #include <string> 
#include <iostream> // для объекта cout
using namespace std;
 
#include<iomanip>
//Этот файл содержит большую часть манипуляторов C++. Если вы не знаете, что такое манипулятор, не беспокойтесь. 
//Просто подключите это файл смело и не раздумывая  вместе с iostream, хуже не станет.
#include<fstream> 
//Подключается при работе с файлами.
 
  class CAT
 {
     public:
      CAT(); // конструктор по умолчанию
              // конструктор-копировщик и деструктор пропущены!
      int GetAge() const { return *itsAge; }
      int GetWeight() const { return *itsWeight; }
      void SetAge(int age) { *itsAge = age; }
      CAT & operator=(const CAT &);
 
     private:
      int *itsAge;
      int *itsWeight;
   };
 
   CAT::CAT()
   {
      itsAge = new int;
      itsWeight = new int;
      *itsAge = 5;
      *itsWeight = 9;
   }
 
 
  CAT & CAT::operator=(const CAT & rhs)
  {
      if (this == &rhs)
      return *this;
      *itsAge = rhs.GetAge();
      *itsWeight = rhs.GetWeight();
      return *this;
  }
 
 
 int main()
   {
    CAT frisky;
    cout << "frisky's age: " << frisky.GetAge() << endl;
    cout << "Setting frisky to 6...\n";
    frisky.SetAge(6);
    CAT whiskers;
    cout << "whiskers' age: " << whiskers.GetAge() << endl;
    cout << "copying frisky to whiskers...\n";
    whiskers = frisky;
    cout << "whiskers' age: " << whiskers.GetAge() << endl;
    system("pause  ");
    return 0;
   }
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.11.2013, 23:13     Сравнение обьекта
Посмотрите здесь:

Передвижение обьекта C++
C++ адресс обьекта класса
C++ Передача в функцию обьекта
C++ Передача обьекта в функию
Вернуть С-строку из обьекта класса C++
C++ Не работает создание обьекта
Дескриптор обьекта C++
Возвращение обьекта из шаблона C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
ssXXss
263 / 185 / 10
Регистрация: 15.01.2011
Сообщений: 668
25.11.2013, 23:17     Сравнение обьекта #2
CAT & CAT::operator=(const CAT & rhs) это ссылка на объект а this это указатель, &rhs - адрес
Yandex
Объявления
25.11.2013, 23:17     Сравнение обьекта
Ответ Создать тему
Опции темы

Текущее время: 10:15. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru