2013-07-29 55 views
-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); 
}; 

在函数的派生类中,如果例如克隆未实现,它是否会给出编译错误?或者如果我尝试调用derived.clone(),它会是一个运行时错误?

+8

“它会给编译错误吗?”你为什么不尝试并找出答案。 –

回答

6

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

1

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