每当我想要将一个方法存根到一个原本微不足道的类中时,我通常会提取一个接口。现在,如果该类的构造函数是公共的,并且不是太复杂或不依赖于复杂类型,那么只需将所讨论的方法设为虚的并继承,就会有相同的效果。这比提取接口更可取吗?如果有,原因何在?DoLengthyParseTask(Stream s) // is slow even with using memory stream}
有两种方法:要么提取一个接口,要么使该方法成为虚的。我实际上更喜欢<
我有一个实现虚方法f()的基类。我还有一个接口类,它有一个纯虚方法f()。然后我有一个继承基类和接口的派生类。当我尝试实例化派生时,我得到一个编译器错误“无法实例化抽象类”。public INTERFACE, public BASE public: ~DERIVED() = default;
}; 基类不知道接口我需要的是能够实例化派生的,并且能够在派生中使用BASE中的f(),以及当我通过接口访问它时。