[C++] Dziedziczenie - co oznacza zapis A::A( int c ): B( c, c ) {}
Ostatnio zmodyfikowano 2013-07-07 15:20
ravv1 Temat założony przez niniejszego użytkownika |
[C++] Dziedziczenie - co oznacza zapis A::A( int c ): B( c, c ) {} » 2013-07-06 18:44:19 Witam. Otóż ucząć się c++ natrafiłem na przypadek którego nie rozumiem. Co oznacza zapis (dokładnie przepisuje):
Square::Square( int length ) : Rectangle( length, width ) { }
Rozumiem, że square i rectangle pobierają określone parametry. Ale nie rozumiem całego zapisu. To jakiś konstruktor?
|
|
killjoy |
» 2013-07-06 18:52:37 |
|
DejaVu |
» 2013-07-06 19:43:14 Kasa Square dziedziczy po klasie Rectangle. Klasa Rectangle posiada konstruktor z argumentami, który trzeba wywołać w trakcie tworzenia obiektu. Skoro klasa Square dziedziczy po klasie Rectangle to trzeba zagwarantować, że konstruktor klasy bazowej (tj. klasy Rectangle) zostanie wywołany. Zapis, który widzisz właśnie to zapewnia tj. w chwili powstawania obiektu Square wywołuje konstruktor Rectangle z określonymi wartościami. Konstruktora nie da się wywołać wewnątrz bloku {}, więc trzeba użyć listy inicjalizacyjnej, która zaczyna się od dwukropka i występuje przed rozpoczęciem bloku {}.
/edit:
W każdym razie kod, który przytoczyłeś jest niepoprawny. Jak już to powinien on wyglądać tak:
Square::Square( int length ) : Rectangle( length, length ) { }
|
|
ravv1 Temat założony przez niniejszego użytkownika |
» 2013-07-07 15:20:52 Kod przepisałem prosto z książki. Dziękuję, już rozumiem. |
|
« 1 » |