我有以下情况(以下仅用于说明):
class Base()
{
public:
Base(int);
};
class Derived : public Base
{
public:
Derived(int, int, bool);
};
我想根据派生构造函数中的布尔标志初始化基类。什么(如果有的话)是这样做的正确方法..
我可以做(但评估是在初始化 Base 之前完成的吗?):
Derived::Derived(int _x, int _y, bool _z) : Base(_z?_x:_y) {}
或(但这可能无法正常工作)
Derived::Derived(int _x, int _y, bool _z)
{
if(_z)
::Base(_x);
else
::Base(_y);
}
如果没有正确的方法这样做,那么我可能会在Derived
.