Документ взят из кэша поисковой машины. Адрес оригинального документа : http://www.fds-net.ru/showflat.php?Number=5329927&src=arc&showlite=
Дата изменения: Unknown
Дата индексирования: Tue Apr 12 23:33:16 2016
Кодировка: Windows-1251
Конструктор копирования и operator= - Public forum of MSU united student networks
Root | Google | Yandex | Mail.ru | Kommersant | Afisha | LAN Support
  
Technical >> Development (Archive)

Страницы: 1
sidaesc
journeyman

Рег.: 24.04.2006
Сообщений: 94
Рейтинг: 3
  Конструктор копирования и operator=
      05.11.2006 13:29
 

есть

code:
class Base { public: Base( int initX = 0 ); Base( const Base& b ); Base& operator=( const Base& b ); private: int x; }; class Derived : public Base { public: Derived( int initValue ); Derived& operator=( const Derived& d ); private: int y; }; Base::Base( int initX ) : x( initX ) {}; Base::Base( const Base& b ) { x = b.x; }; Base& Base::operator=( const Base& b ) { if( this == &b ) { return *this; } x = b.x; return *this; } //============================================= Derived::Derived( int initValue ) :Base( initValue ), y( initValue ) {} Derived& Derived::operator=( const Derived& d ) { if( this == &d ) { return *this; } static_cast<Base&>(*this) = d; y = d.y; return *this; }

почему если написать так
code:
static_cast<Base&>(*this) = d;

в Derived::operator= то вызовется Base::operator=
а если тка
code:
static_cast<Base>(*this) = d;

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



Редактировал sidaesc (05.11.2006 13:43)
sidaesc
journeyman

Рег.: 24.04.2006
Сообщений: 94
Рейтинг: 3
  Re: Конструктор копирования и operator= [re: sidaesc]
      05.11.2006 14:30
 

все мне ответили
 ответ

Страницы: 1

Technical >> Development (Archive)

Дополнительная информация
0 зарегистрированных и 0 анонимных пользователей просматривают этот форум.

Модераторы:  DarkGray 

Печать темы

Права
      Вы можете создавать новые темы
      Вы можете отвечать на сообщения
      HTML отключен
      UBBCode включен

Рейтинг:
Просмотров темы:

Переход в