纯虚函数

时间:2017-04-01 22:17:35

标签: c++ pure-virtual

我在C ++中知道, virtual double f()=0;是纯虚函数, 关于什么 virtual void f() {return 0.0};? 这是一个纯虚函数吗?

2 个答案:

答案 0 :(得分:2)

没有。当且仅当它以= 0声明时,函数才是纯虚函数。

请注意,可以为纯函数提供定义,但必须分两步完成:

struct X
{
    virtual double f() = 0;  // pure, X is abstract
};

double X::f() { return 0; }  // definition

用法:

X x;  // error, X is abstract

struct Y : X
{
    double f() override
    {
        return X::f();  // OK, calls pure virtual function
    }
};

Y y;  // OK, Y overrides X::f

答案 1 :(得分:0)

纯虚函数是标有=0的函数。它隐含地使类抽象化。抽象类无法实例化。派生类必须覆盖继承的纯虚函数,否则它也是抽象的。