美文网首页C++ 杂记
C++ 纯虚函数也是可以实现的

C++ 纯虚函数也是可以实现的

作者: 赵者也 | 来源:发表于2019-03-02 20:54 被阅读0次
class PureVirtualA {

public:

    virtual ~PureVirtualA();

    virtual void testPureVirtualFunc() = 0;

protected:

    void publicFunc();

};

PureVirtualA::~PureVirtualA()

{

}

void PureVirtualA::publicFunc()

{

    std::cout << "PureVirtualA::publicFunc()" << std::endl;

}



void PureVirtualA::testPureVirtualFunc() {

    std::cout << "PureVirtualA::testPureVirtualFunc()" << std::endl;

}



class TestB : public PureVirtualA {

public:

    void testPureVirtualFunc();

};

void TestB::testPureVirtualFunc() {

    PureVirtualA::testPureVirtualFunc();

    std::cout << "B::testPureVirtualFunc()" << std::endl;

    this->publicFunc();

}

// ... 测试

PureVirtualA* test = new TestB;
test->testPureVirtualFunc();

test->PureVirtualA::testPureVirtualFunc();

默认的实现可以像 publicFunc 一样用于公共的方法来使用
这种方法的好处是少了一个需要维护的函数,缺点是客户代码可以直接调用基类的缺省实现。

// 测试输出:

PureVirtualA::testPureVirtualFunc()
B::testPureVirtualFunc()
PureVirtualA::publicFunc()
PureVirtualA::testPureVirtualFunc()

相关文章

  • C++中的(纯)虚函数

    简介 本章节会介绍在C++中虚函数及纯虚函数的主要作用,C++也是通过虚函数实现动态绑定,本小节不会去讲述动态绑定...

  • C++ 纯虚函数也是可以实现的

    // ... 测试 默认的实现可以像 publicFunc 一样用于公共的方法来使用这种方法的好处是少了一个需要维...

  • 语法

    virtual 1.virtual声明的函数实现多态就是通用的多态实现 2.纯虚函数C++的纯虚函数用于表示一个类...

  • c++基础(纯虚函数)

    内容和代码接档此内容可以做为参考c++基础(纯虚函数) 所谓纯虚函数就是在基类中这个虚函数只是证明并没有具体实现要...

  • C++面向对象

    小结 虚函数是virtual声明的。实现动态链接的功能。 纯虚函数是没有函数主体的虚函数。 一、C++继承 1.当...

  • Swift5.1学习随笔之多态

    多态的实现原理: OC:Runtime C++:虚表(虚函数表) Swift:纯Swift没有Runtime,更加...

  • 为什么需要虚析构函数? 什么是多态?

    纯虚函数:形式为virtual void fun1() = 0;纯虚函数不需要实现,原因是不会被调用到 C++中基...

  • C++boolan part1_week3

    C++纯虚函数 一、定义 纯虚函数是在基类中声明的虚函数,它在基类中没有定义,但要求任何派生类都要定义自己的实现方...

  • C++如何实现一个接口类

    原理 C++中,通过类实现面向对象的编程,而在基类中只给出纯虚函数的声明,然后在派生类中实现纯虚函数的具体定义的方...

  • C++多态——虚函数表vtable

    纯Swift类的函数调用原理,类似于C++的虚函数表 纯Swift类的函数调用,类似于C++的虚函数表,是编译时决...

网友评论

    本文标题:C++ 纯虚函数也是可以实现的

    本文链接:https://www.haomeiwen.com/subject/hwpluqtx.html