【问题标题】:Not implementing a virtual function没有实现虚函数
【发布时间】:2013-07-29 19:15:32
【问题描述】:

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

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() 会是运行时错误吗?

【问题讨论】:

  • "会不会出现编译错误?"你为什么不尝试一下并找出答案。

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


【解决方案1】:

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

【讨论】:

    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 2011-01-06
      • 2010-12-13
      • 2016-03-07
      • 1970-01-01
      • 1970-01-01
      • 2011-09-02
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多