2011-11-08 6 views
-1

クラスCameraPerspAsymCameraPerspを拡張し、このコンストラクタを持っている:のparams (int pixelWidth, int pixelHeight etc ...)は、基本クラスに渡されるようだ私の知る限りこのコンストラクタを呼び出す方法は?

CameraPerspAsym(int pixelWidth, int pixelHeight, float fov, float nearPlane, float farPlane) 
: CameraPersp(pixelWidth, pixelHeight, fov, nearPlane, farPlane), 
mLensShiftX(0.0f), 
mLensShiftY(0.0f){}; 

(私は読みやすくするための4行でそれを入れています)。しかし、mLensShiftX(0.0f)はどうですか?

私はこのコンストラクタをどのように呼び出す必要がありますか?

+0

私はあなたが良いC + +の本は、継承の基礎をカバーすることをお勧めしたいと思います。 –

+0

研究努力は何も表示されておらず、非常に有用ではないためです。 –

+0

また、議論の場でもありません。 –

答えて

1

子クラスのコンストラクタ(この場合はint pixelWidth, int pixelHeight, float fov, float nearPlane, float farPlane)の引数を指定するだけで構いません。どのようにそれらの引数を親に渡すか、またはメンバーを初期化するためにそれらを使用することは、実装の詳細であり、あなたから隠されています。

mLensShiftX(0.0f), mLensShiftY(0.0f)

は、明示的に値 0.0fを持つ2つのインスタンス変数を初期化するクラスであり、そしてそれが起こることを許可するクラス CameraPerspAsymを使用しているとき、あなたは何もする必要はありません、どちらもあなたが別の値を指定することができます。コンストラクタの実行後に、これらの値を変更するには、クラスが公開するインタフェースを使用する必要があります。

1

任意のコンストラクタを呼び出すように呼び出します。型が型パラメータの型に一致するか、型パラメータの型に自由に変換できる実際のパラメータを使用します。

mLensShiftXmLensShiftYは、浮動小数点0.0にデフォルト設定されているようです。したがって、私はあなたがオブジェクトのいくつかのメソッドを介してこれらの値を変更することができると仮定します。

関連する問題