zoukankan      html  css  js  c++  java
  • C++中构造函数和析构函数(virtual)的执行顺序

    using namespace std;

    class People
    {
    public:
        People(){
            cout << " Output from the structor of calss People!" << endl;
        };  // 构造函数
        virtual ~People(){
            cout << " Output from the destructor of calss People!" << endl;
        }; // 析构函数
        virtual void doSomething()
        {
            cout << "Do something in class People!" << endl;
        };

    };

    class Student : public People
    {
    public:
        Student(){
            cout << " Output from the structor of calss Student!" << endl;
        }; // 构造函数

        ~Student(){
            cout << " Output from the destructor of calss Student!" << endl;
        };// 析构函数
        void doSomething(){
            cout << "Do something in class Student!" << endl;
        };

    }

    int main() {

    Student *stu1 = new Student();
        stu1->doSomething();
        delete stu1;

        cout << endl;

        People *stu2 = new Student();
        stu2->doSomething();
        delete stu2;
        return 0;

    }


    执行结果:

    stu1:

     Output from the structor of calss People!
     Output from the structor of calss Student!
    Do something in class Student!
     Output from the destructor of calss Student!
     Output from the destructor of calss People!
    stu2:
     Output from the structor of calss People!
     Output from the structor of calss Student!
    Do something in class Student!
     Output from the destructor of calss Student!
     Output from the destructor of calss People!

  • 相关阅读:
    [2020.12.5周六]Boruvka
    [2020.12.4周五] 圆上对称博弈
    [2020.12.3周四]最长上升子序列
    置顶~ 未来半年内训练计划
    cf1473d
    cf1474D
    寒假复健第一天 cf1475D
    来啦来啦,寒假复健第一题cf1475g
    12.1加训总结 2019南京
    12.7-12.13训练计划
  • 原文地址:https://www.cnblogs.com/bbsno1/p/3270904.html
Copyright © 2011-2022 走看看