[C++] Trochę teorii o operatorach i dziedziczeniu
Ostatnio zmodyfikowano 2014-05-29 12:32
ArgonZapan Temat założony przez niniejszego użytkownika |
[C++] Trochę teorii o operatorach i dziedziczeniu » 2014-05-28 22:30:44 Sprawa wygląda tak: Chair dziedziczy po Furniture W Chair i Furniture są operatory = Chair & Chair::operator =( Chair & pattern ) { if( & pattern != this ) { this->Lenght = pattern.Lenght; this->Width = pattern.Width; this->Height = pattern.Height; Furniture::operator =( pattern ); } return * this; }
Czy ten zapis jest poprawny ? Czy istnieją inne zapisy ? Czy te pattern ma coś wspólnego z rzutowaniem w górę ? |
|
DejaVu |
» 2014-05-29 10:53:09 Jeżeli działa to jest OK. pattern to zmienna. Jeżeli przechowuje obiekt typu Chair, a Chair dziedziczy po Furniture, to rzutowanie niejawnie w górę jest dozwolone (o ile rzutujesz do referencji lub wskaźnika), ponieważ Chair posiada wszystkie metody które ma Furniture.
Prostszy przykład:
Chair krzeslo; Furniture & mebel = krzeslo; mebel.jakasMetodaMebla(); |
|
pekfos |
» 2014-05-29 12:30:58 Operatory = przyjmują referencję na stałą, a nie zwykłą. |
|
DejaVu |
» 2014-05-29 12:32:46 No tak, ale wywołanie jest poprawne ;p |
|
« 1 » |