虚函数被类的构造函数与析构函数中如何调用虚函数

来源:爱站网时间:2021-04-29编辑:网友分享
在构造析构函数中调用虚函数时,总是没办法呈现多种状态,那么虚函数被类的构造析构函数和成员函数调用虚函数的执行过程到底是怎么样的呢?下文中将为你详细解答。

 

 

#include

 

class base{
public:

    base()
    {
        std::cout         std::cout         func1();
        std::cout     }

    virtual ~base()
    {
        std::cout         std::cout         func1();
        std::cout     }
    virtual void func1()
    {
        std::cout     }

    void func2()
    {
        std::cout         func1();
        std::cout     }
};

class derived:public base{
public:
    derived()
    {
        std::cout         std::cout         func1();
        std::cout     }

    virtual ~derived()
    {
        std::cout         std::cout         func1();
        std::cout     }

    virtual void func1()
    {
        std::cout     }

};

int main()
{
    base *point = new derived();
    point->func2();
    delete point;
    return 0;
}

 

会有这样的输出


即使func1是虚函数,在base类和derived的构造函数和析构函数里面,都是调用自己类里面的func1。

而在普通成员函数func2调用func1,就会走虚函数的流程。

上面爱站技术频道的小编已经详细为你解答了有关虚函数被类的构造析构函数和成员函数调用虚函数详细执行过程,如果还需要了解更多相关信息,可以持续关注我们。

上一篇:VC6.0打开或者添加文件突然程序崩溃该怎么做

下一篇:strcpy函数通过自己实现的教程

您可能感兴趣的文章

相关阅读

热门软件源码

最新软件源码下载