我可以让 subclasses 隐式继承 base class 构造函数吗?
Can I make subclasses implicitly inherit base class constructors?
假设我有:
class A {
public:
A(int x_) : x(x_) {}
int x;
};
class B: public A { };
class C: public A { };
使用这段代码,B 和 C 将没有任何构造函数(复制构造函数除外)。我想更改 class A
中的某些内容( 而不是 B
或 C
中的 ),以便 B
C
将继承 A
的构造函数。这有可能吗?
不可能隐含地拥有它们。您可以通过以下方式显式提供构造函数:
class B: public A { using A::A; };
class C: public A { using A::A; };
假设我有:
class A {
public:
A(int x_) : x(x_) {}
int x;
};
class B: public A { };
class C: public A { };
使用这段代码,B 和 C 将没有任何构造函数(复制构造函数除外)。我想更改 class A
中的某些内容( 而不是 B
或 C
中的 ),以便 B
C
将继承 A
的构造函数。这有可能吗?
不可能隐含地拥有它们。您可以通过以下方式显式提供构造函数:
class B: public A { using A::A; };
class C: public A { using A::A; };