![]() |
![]() |
![]() |
![]() |
![]() |
|
When you want a constructor in a derived class to hand arguments to an argument-bearing constructor in a base class, you modify the derived-class constructor's definition by sandwiching base-class constructor calls between its argument list and its body, and you signal your intention to do this sandwiching with a colon.
For example, if you want the default box_car constructor to supply
arguments for the three-argument box constructor, you modify the
box_car default constructor as follows:
Derived-class default constructor
| *----- No arguments, as before
| | *----- Colon marking presence of a call
| | | to a base-class constructor
| | | *----- Name of the base-class constructor
| | | | *----- Arguments for the base-class constructor
| | | | | *----- Empty body
| | | | v |
v v v v --------------- v
box_car ( ) : box (10.5, 9.5, 40.0) { }
You should compare this constructor-calling default constructor with the previous member-variable-assigning version:
box_car ( ) {
height = 10.5; width = 9.2; length = 40.0;
}