如何实现子类的构造函数?
how to implement a subclass's constructor?
有一个基类:
class A {
public :
A(string a);
void some_method();
};
A 的实现:
A::A(string a) {
cout<<"here it is : "<<a;
}
void A::some_method() { ... }
有一个从 A 继承的类:
class B : A {
public :
B(string b);
void another_method();
};
B 的实现:
B::B(string b):A(string a) // it causes error at compil time
{
cout<<"here it is : "<<b;
}
void B::another_method() { ... }
在 B 的构造函数的实现中我应该写什么?
该行必须读取
B::B(string b):A(b)
您可以通过将 A 构造函数视为调用而不是声明来记住这一点。
那很简单:
B::B(string b):A(b)
{
就像普通的对象初始化一样(A
将参数传递给b
来初始化基本子对象)。
如果你
有一个像B::B(string b):A(string a)
这样的构造函数,你期望构造函数的调用者如何传递参数?:-)
所以如果你想用b
来初始化a
,你可以这样做:B::B(string b):A(b)
。否则,你必须做B::B(string a, string b):A(a)
相关文章:
- 在类构造函数中传递对外部函数的引用
- 具有enable_if外部类原型的模板类构造函数定义
- 自动重复 extern "C"函数中的类构造函数采用的相同参数
- 模板化类构造函数的模板实例化
- 用初始化列表和超类构造函数声明子类构造函数的正确方式
- 重写子类构造函数中的父类变量
- 我可以从我的超类调用子类构造函数吗?
- 使用基类构造函数的子类构造函数的大纲定义
- 子类的构造函数后跟冒号后的基类构造函数是什么意思?
- 是否有必要调用父构造函数而不使用子类构造函数的参数?
- Singleton子类构造函数错误
- C++ 在超类构造函数中运行依赖于子类覆盖的大量变量的代码的正确方法是什么?
- 指向子类构造函数中接口类函数的函数指针
- 编写子类构造函数的实现
- C++在子类内部调用基类构造函数
- 子类构造函数
- 子类调用超类构造函数
- 使用私有成员的子类构造函数
- 子类调用基类构造函数,然后使用子类Arduino c++中基类的实例方法
- 继承父类构造函数的c++子类