需要为派生类指定多少个构造函数
How many constructors need to be specified for derived class?
我尝试学习面向对象编程,并有一个基本问题。有一个基类 A,它有三个构造函数,采用 0、1 和 2 个变量。我想从 A 中导出一个类 B,其中我想选择最多传递三个变量。所以我至少需要三个不同的构造函数来表示 B,每个可选变量一个。但是对于基类 A 的每个构造函数,我是否还需要三个不同的 B 构造函数,即总共 9 个构造函数?
由于构造函数不会自动继承,这取决于您。但是,您可以执行以下操作:
class A {
int a;
int b;
int c;
public:
A(int newA = 0, int newB = 0, int newC = 0): a(newA), b(newB), c(newC){}
};
class B : public A{
using A::A;
};
这还包括可选参数和构造函数初始值设定项列表,它们应该是不言自明的。希望这能回答你的问题。
干杯
相关文章:
- "error: no matching function for call to"构造函数错误
- C++17复制构造函数,在std::unordereded_map上进行深度复制
- 如果C++类在类方法中具有动态分配,但没有构造函数/析构函数或任何非静态成员,那么它仍然是POD类型吗
- 为什么在没有显式默认构造函数的情况下,将另一个结构封装在联合中作为成员的结构不能编译
- 为什么在C++中使用私有复制构造函数与删除复制构造函数
- 选择要调用的构造函数
- 如何委托派生类使用其父构造函数?
- 构造函数正在调用一个使用当前类类型的函数
- 在 C++ 中,默认情况下构造函数为类的数据成员提供的值是多少?
- 从 long 转换C++位集构造函数的复杂性是多少?
- 如果函数按值传递并按值返回,将调用复制构造函数多少次
- 复制构造函数被调用了多少次?
- 需要为派生类指定多少个构造函数
- std::basic_string构造函数如何事先知道要保留多少空间
- 在C++中,如果我们不在构造函数中初始化数据成员,那么类中数据成员的值会是多少
- 复制构造函数在这个C++代码段中被调用了多少次
- 如果 Foo 的构造函数抛出,'Foo *p = new Foo()' 中 p 的值是多少?
- 我的类的构造函数应该执行多少工作
- 有多少种方法可以生成临时对象/不必要地调用构造函数
- 上面的person类中有多少个构造函数