国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > C > 正文

虛函數被類的構造析構函數和成員函數調用虛函數的執行過程

2020-01-26 16:22:13
字體:
來源:轉載
供稿:網友

復制代碼 代碼如下:

#include<iostream>

class base{
public:

    base()
    {
        std::cout<<std::endl;
        std::cout<<"base constructor"<<std::endl;
        func1();
        std::cout<<std::endl;
    }

    virtual ~base()
    {
        std::cout<<std::endl;
        std::cout<<"base distructor"<<std::endl;
        func1();
        std::cout<<std::endl;
    }
    virtual void func1()
    {
        std::cout<<"base virtural func1"<<std::endl;
    }

    void func2()
    {
        std::cout<<"base member func2"<<std::endl;
        func1();
        std::cout<<std::endl;
    }
};

class derived:public base{
public:
    derived()
    {
        std::cout<<std::endl;
        std::cout<<"derived constructor"<<std::endl;
        func1();
        std::cout<<std::endl;
    }

    virtual ~derived()
    {
        std::cout<<std::endl;
        std::cout<<"derived distructor"<<std::endl;
        func1();
        std::cout<<std::endl;
    }

    virtual void func1()
    {
        std::cout<<"derived virtual func1"<<std::endl;
    }

};

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

會有這樣的輸出


即使func1是虛函數,在base類和derived的構造函數和析構函數里面,都是調用自己類里面的func1。

而在普通成員函數func2調用func1,就會走虛函數的流程。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 大港区| 宕昌县| 观塘区| 会同县| 嘉兴市| 卓资县| 泊头市| 澳门| 西和县| 新民市| 岑溪市| 东明县| 泸州市| 象山县| 黄平县| 垫江县| 保山市| 湾仔区| 高安市| 通城县| 会昌县| 柳河县| 贵定县| 东辽县| 德昌县| 青冈县| 花莲县| 扶沟县| 宁明县| 汾阳市| 云霄县| 秭归县| 刚察县| 河北区| 石林| 仪陇县| 汤原县| 贵州省| 甘肃省| 循化| 银川市|