C/C++教程

【C++】private 函数用 virtual 修饰的一个用途

本文主要是介绍【C++】private 函数用 virtual 修饰的一个用途,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

private 函数用 virtual 修饰时,可以用于“不想对外暴露 virtual 函数,而提供一个 public 的非虚函数给外界访问”的情形。具体看如下代码:

#include <QCoreApplication>
#include <QDebug>

class Father
{
public:
    void func()
    {
        vfunc();
    }

private:
    virtual void vfunc()
    {
        qDebug() << "I am Father";
    }
};

class Son : public Father
{
private:
    void vfunc() override
    {
        qDebug() << "I am Son";
    }
};

int main(int argc, char *argv[])
{
    QCoreApplication a(argc, argv);

    Father* pFather = new Father();
    pFather->func();            // "I am Father"

    Father* pSon = new Son();
    pSon->func();               // "I am Son"


    return a.exec();
}

这篇关于【C++】private 函数用 virtual 修饰的一个用途的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!