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!

  • 相关阅读:
    Jquery之高亮显示
    JS之旋转轮播图
    JS之手风琴效果
    JS之评价页面点亮星星进行评价
    JS之京东淘宝图片放大镜效果
    JS之表单验证
    JS之拖拽案例
    禁止文本选中
    大数据告诉你:学历真的能改变命运
    hadoop的自定义分组实现 (Partition机制)
  • 原文地址:https://www.cnblogs.com/bbsno1/p/3270904.html
Copyright © 2011-2022 走看看