のための異なるベースのコンストラクタを使用して:次のコードは、この順序で実行されます私の理解から派生したクラスのC++
- 派生コンストラクタが呼び出されます。
- ベースオブジェクトは、デフォルトベースコンストラクタを使用して作成されます。
- 派生コンストラクタの本体が実行されます。
もしそうなら、メンバーzは値を2回割り当てられていませんか?
class base {
public:
int x, y, z;
base() {x = 0; y = 0; z = 0;};
};
class derived : public base {
public:
derived() {z = 5;};
};
割り当てられるが、この場合、唯一のメンバーx及びYAの値を割り当てることになるかに、異なるコンストラクタを使用してZを残し、「派生」クラスのオブジェクトを作成するためのより効率的な方法がありますderived()の値ですか?
+1:私はデフォルトパラメータを使用するとは思わなかった。 –