C++ 如何调用这个构造函数?

C++ 如何调用这个构造函数?,c++,inheritance,constructor,C++,Inheritance,Constructor,类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){}; 为了便于阅读

类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){};
为了便于阅读,我把它分成了四行

看来参数int pixelWidth,int pixelHeight等。。。传递给基类。但是mLensShiftX0.0f呢


那么我应该如何调用这个构造函数呢?

您只需要为子类的构造函数提供参数,在这种情况下,int pixelWidth、int pixelHeight、float fov、float nearPlane、float farPlane。它如何将这些参数传递给其父级,或使用这些参数初始化其成员,这是一个实现细节,对您来说是隐藏的


mLensShiftX0.0f,mLensShiftY0.0f是显式初始化两个值为0.0f的实例变量的类,在使用类CameraperPassym允许这种情况发生时,无需执行任何操作,也不能指定备用值。在构造函数运行后,您必须使用类公开的接口来更改这些值。

像调用任何构造函数一样调用它。具有类型与形式参数类型匹配或可以自由转换为形式参数类型的实际参数


mLensShiftX和mLensShiftY显然默认为浮点0.0;因此,我假设你可以通过对象上的一些方法来改变这些值。

我建议你先从一个好的C++书籍中学习继承的基础知识。因为它没有显示任何研究成果,而且它也不是很有用。它也不是一个有争论的地方。