|
|
1
19
以下文章的标题说明了一切: Never Call Virtual Functions during Construction or Destruction . |
|
|
2
4
或者,创建一个用于创建对象的工厂方法并将构造函数设置为私有,工厂方法可以在构建后初始化对象。 |
|
|
3
2
将在一般情况下工作,但不适用于纯虚拟基类构造函数内的调用。在构造基类时,子类重写不存在,因此不能调用它。只要在构建整个对象后调用它,它就会工作。 |
|
|
4
2
这是因为您的调用在构造函数中。在构造函数完成之前,派生类将无效,因此编译器会就此向您发出警告。 有两种解决方案:
|
|
|
5
2
再多走一步,你就可以引入一些函数,比如
|
|
|
6
1
粗略的 这个 本质的 就我所见,问题在于您试图通过继承重用功能。这几乎总是个坏主意。可以说,这是一个设计问题:) 本质上,您尝试实例化一个模板方法模式,以分离 什么 什么时候 :首先读取一些数据(以某种方式),然后处理它(以某种方式)。 这可能会更好地处理聚合:为模板方法提供处理函数,以便在正确的时间调用。也许您甚至可以对读取功能执行相同的操作。 聚合可以通过两种方式完成:
示例1:运行时绑定
示例2:编译时绑定
|
|
7
0
在对象完全构造后,需要将其封装到调用虚方法的对象中:
|
|
AstralHex · 矩阵乘法代码工作不正常 1 年前 |
|
|
Fishie · 作为类成员的智能指针是否仍然自动释放?[关闭] 1 年前 |
|
|
Die4Toast · 递归调用成员箭头运算符-> 1 年前 |
|
|
Anka Hanım · 关于结构和动态数组地址的问题 1 年前 |