|
|
1
19
以下文章的标题说明了一切: Never Call Virtual Functions during Construction or Destruction . |
|
|
2
4
或者,创建一个用于创建对象的工厂方法并将构造函数设置为私有,工厂方法可以在构建后初始化对象。 |
|
|
3
2
将在一般情况下工作,但不适用于纯虚拟基类构造函数内的调用。在构造基类时,子类重写不存在,因此不能调用它。只要在构建整个对象后调用它,它就会工作。 |
|
|
4
2
这是因为您的调用在构造函数中。在构造函数完成之前,派生类将无效,因此编译器会就此向您发出警告。 有两种解决方案:
|
|
|
5
2
再多走一步,你就可以引入一些函数,比如
|
|
|
6
1
粗略的 这个 本质的 就我所见,问题在于您试图通过继承重用功能。这几乎总是个坏主意。可以说,这是一个设计问题:) 本质上,您尝试实例化一个模板方法模式,以分离 什么 什么时候 :首先读取一些数据(以某种方式),然后处理它(以某种方式)。 这可能会更好地处理聚合:为模板方法提供处理函数,以便在正确的时间调用。也许您甚至可以对读取功能执行相同的操作。 聚合可以通过两种方式完成:
示例1:运行时绑定
示例2:编译时绑定
|
|
7
0
在对象完全构造后,需要将其封装到调用虚方法的对象中:
|
|
Fernando Chu · 一个变量有多个可能的类?[关闭] 1 年前 |
|
|
Amaterastis · 基类接受子类和内部子类的模板参数 1 年前 |
|
|
Rishab Negi · 这个关键字在抽象类中是如何工作的 1 年前 |
|
|
dEmigOd · 类层次结构中的运算符重载解析 1 年前 |
|
|
TableTopRug · 如何从Kotlin中的密封类继承? 1 年前 |
|
|
hasdrubal · 抽象基类函数指针python 2 年前 |
|
|
Josh · 通过反思访问孩子的财产 2 年前 |