我希望我的继承类具有相同的构造函数

时间:2015-01-30 21:07:33

标签: c++ class inheritance constructor

因为我的构造函数只是Ent::Ent(string InputID) { ID = InputID; }

我希望这对于继承该类的所有类都是一样的。

每个人都说构造函数与继承类的其他函数???

有所不同

1 个答案:

答案 0 :(得分:9)

在C ++ 11中,您可以将父类型的所有构造函数都拉为the using keyword的派生类型:

class A
{
public:
    A(int v) : value(v) { }

    int value;
};

class B : public A
{
public:
    using A::A;
};

int main() {
    B b = B(1);
    std::cout << b.value << std::endl;
    return 0;
}

Demo。)

这将在B中创建一组继承构造函数,它们调用A中的相应构造函数来初始化基础对象。

你必须在每个派生类中执行此操作,但它必须编写你想要的每个构造函数&#34; inherit&#34;用手。