首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >纯虚函数

纯虚函数
EN

Stack Overflow用户
提问于 2017-04-02 06:17:35
回答 2查看 347关注 0票数 1

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

EN

回答 2

Stack Overflow用户

发布于 2017-04-02 06:26:27

不是的。当且仅当使用= 0声明函数时,该函数才是纯虚函数。

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

代码语言:javascript
复制
struct X
{
    virtual double f() = 0;  // pure, X is abstract
};

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

用法:

代码语言:javascript
复制
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
票数 2
EN

Stack Overflow用户

发布于 2017-04-02 06:27:10

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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43162600

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档