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!

  • 相关阅读:
    网络通信2
    linux下使用shell脚本输出带颜色字体
    CentOS7 yum方式安装MySQL5.7
    Prometheus 基于文件的服务发现
    k8s容器探针
    kuberntes部署metallb LoadBalancer负载均衡
    [kubernetes]-namespace 处于Terminating状态的处理方法
    Kubernetes角色访问控制RBAC和权限规则
    k8s 关联pvc到特定的pv
    k8s创建kubeconfig文件
  • 原文地址:https://www.cnblogs.com/bbsno1/p/3270904.html
Copyright © 2011-2022 走看看