-3

我想问,不实现虚函数有问题吗?例如:

class Function { 
public: 
    virtual ~Function() {} 
    virtual double value(double x) const = 0; 
    virtual Function* clone() const = 0; 
protected: 
    virtual void print(ostream& os) const = 0; 
    friend ostream& operator<<(ostream& os, const Function& f); 
}; 

在Function的派生类中,如果没有实现例如clone,会不会出现编译错误?或者如果我尝试调用derived.clone() 会是运行时错误吗?

4

2 回答 2

6

如果您尝试实例化具有未实现的纯虚函数(包括继承的虚函数)的类,您将收到编译错误。

于 2013-07-29T19:17:52.747 回答
1

编译创建该类或其派生类的实例的代码时会出现错误:error C2259: cannot instantiate abstract class.

于 2013-07-29T19:20:53.283 回答