班级CameraPerspAsym
扩展CameraPersp
并拥有此构造函数:
CameraPerspAsym( int pixelWidth, int pixelHeight, float fov, float nearPlane, float farPlane )
: CameraPersp(pixelWidth, pixelHeight, fov, nearPlane, farPlane),
mLensShiftX(0.0f),
mLensShiftY(0.0f){};
(我把它放在4行以便于阅读)
AFAIK似乎将params ( int pixelWidth, int pixelHeight etc ... )
传递给基类。但是mLensShiftX(0.0f)
?
那我应该如何调用这个构造函数呢?
答案 0 :(得分:1)
您只需要担心为子类的构造函数提供参数,在本例中为int pixelWidth, int pixelHeight, float fov, float nearPlane, float farPlane
。它如何将这些参数传递给它的父级,或者使用它们来初始化它的成员,是一个实现细节并且对你隐藏。
mLensShiftX(0.0f), mLensShiftY(0.0f)
是使用值0.0f
显式初始化两个实例变量的类,当使用类CameraPerspAsym
来允许这种情况发生时,您不需要做任何事情,你也不能指定替代值。在构造函数运行后,您必须使用类公开的接口来更改这些值。
答案 1 :(得分:1)
调用它就像你会调用任何构造函数一样。使用实际参数,其类型与形式参数的类型匹配,或者可以自由转换为形式参数的类型。
mLensShiftX
和mLensShiftY
显然默认为浮点0.0;因此我假设您可以通过对象上的某些方法来改变这些值。