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!

  • 相关阅读:
    StrToUnicode C#语言如何将汉字转换成Unicode字符
    SQLServer 2008数据库查看死锁、堵塞的SQL语句
    String.IsNullOrEmpty和"".length>0 那个更高效
    使用策略设计模式,反射,解决商城系统中的商品折扣问题
    假分页
    MAC校验
    eclipse环境加载svn
    将数据导出Excel格式
    svn提交问题
    字符串前拼接字符
  • 原文地址:https://www.cnblogs.com/bbsno1/p/3270904.html
Copyright © 2011-2022 走看看