【发布时间】:2020-07-03 05:41:13
【问题描述】:
我需要复制具有基指针的多态类的对象。我知道我可以为此实现一个虚拟方法。但是如果基类不应该是抽象的呢?如果您忘记在派生中重新实现它,那么在没有纯说明符的情况下保留该方法可能会导致运行时错误。不舒服。处理这个问题的最佳方法是什么?
【问题讨论】:
-
我想也许一定有一个特性会强迫你实现一个方法,即使它不是纯的。
-
把它变成一个纯函数。然后创建另一个声明为 final 的类,该类继承并植入该函数。
-
虚拟克隆方法是最好的做法。
-
@Mellester 你知道这个类不应该是抽象的,是吗?如果有,你能举个例子吗?
-
只在基类和派生类中实现虚拟复制功能有什么问题?
标签: c++ copy polymorphism clone