zoukankan      html  css  js  c++  java
  • virtual destructor

    code 1. 

    #include <iostream>
    using namespace std;

    class Base {
    public:
    Base() {cout<<"Base constructor"<<endl;}
    ~Base() {cout<<"Base destructor"<<endl;}
    };

    class Derived:public Base{
    public:
    Derived() {cout<<"Derived constructor"<<endl;}
    ~Derived() {cout<<"Derived destructor"<<endl;}
    };

    int main()
    {
    Derived *p = new Derived;
    delete p;

    return 0;
    }

    ---------------------

    [tli]$ ./a.out
    Base constructor
    Derived constructor
    Derived destructor
    Base destructor

    code 2.

    #include <iostream>
    using namespace std;

    class Base {
    public:
    Base() {cout<<"Base constructor"<<endl;}
    ~Base() {cout<<"Base destructor"<<endl;}
    };

    class Derived:public Base{
    public:
    Derived() {cout<<"Derived constructor"<<endl;}
    ~Derived() {cout<<"Derived destructor"<<endl;}
    };

    int main()
    {
    Base *p = new Derived;
    delete p;

    return 0;
    }

    -----

    [tli]$ ./a.out
    Base constructor
    Derived constructor
    Base destructor

    code 3.

    #include <iostream>
    using namespace std;

    class Base {
    public:
    Base() {cout<<"Base constructor"<<endl;}
    virtual ~Base() {cout<<"Base destructor"<<endl;}
    };

    class Derived:public Base{
    public:
    Derived() {cout<<"Derived constructor"<<endl;}
    ~Derived() {cout<<"Derived destructor"<<endl;}
    };

    int main()
    {
    Base *p = new Derived;
    delete p;

    return 0;
    }

    [tli]$ ./a.out
    Base constructor
    Derived constructor
    Derived destructor
    Base destructor

  • 相关阅读:
    spring mvc---web.xml
    javascript:;与javascript:void(0)使用介绍
    JVM的内存区域划分
    获取配置文件内容
    spring获取webapplicationcontext,applicationcontext几种方法详解
    Spring MVC 中 HandlerInterceptorAdapter的使用(拦截器)
    google开发工具指南
    深克隆
    IO优化
    UML类图
  • 原文地址:https://www.cnblogs.com/Torstan/p/2734657.html
Copyright © 2011-2022 走看看