没有实现虚函数

时间:2013-07-29 19:15:32

标签: c++ inheritance abstract-class virtual-functions

我想问一下,没有实现虚拟功能有问题吗?例如:

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()?

,它会是运行时错误

2 个答案:

答案 0 :(得分:6)

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

答案 1 :(得分:1)

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