在继承的上下文中,我一直在努力构建构造函数的概念。由于C + 11引入了这个主题的重大变化(即基础构造函数可以继承?),这种混淆更加复杂。
所以我的问题:
假设我不使用构造函数继承,只是在派生类中定义一个新的构造函数,基本构造函数是否仍然被调用?它似乎不应该,但我遇到一些文件说明确实会发生这种情况。这是否意味着当你有一个继承链时,会有一系列构造函数被调用?如果是这样,按什么顺序?派生前的基数,还是基数之前的基础?
谢谢!
答案 0 :(得分:2)
以下是订单:
以下是实例化派生时实际发生的事情:
- 为派生的内存留出(足够用于Base和 衍生部分)
- 适当的派生构造函数称为
- 首先使用适当的Base构造函数构造Base对象。如果未指定基础构造函数,则为默认值 将使用构造函数。
- 初始化列表初始化变量
- 构造函数的主体执行
- 控制权返回给来电者
醇>
希望它有所帮助。