c++构造函数,析构函数,调用顺序

2021-04-02  本文已影响0人  死亡中走出来

最近,在看c++,聊一个简单的话题吧。构造函数,析构函数,及调用顺序。

构造函数,

class Base {
public:
  Base(){} //构造函数
  Base(int i) { } //带参数构造函数
  virtual ~Base(){} //析构函数
private:
    int m_baseI;
}

构造函数,析构函数,如上代码所示。

再写一个子类,来表示下吧。

class Derived : public Base {
public:
    Derived(){}
    Derived(int i){}
    ~Derived(){}
private:
   int m_derivedI;
}

这么看,还清晰吗?只不过是个简简单单的继承关系而已。就引入了一些概念。比如继承,虚函数,等等。再想下调用顺序,还能理清吗?

//.... #include<XXX.h>
int main() {
    Derived de;
    return 0;
}

看下,这行代码的调用过程,还好!
以下就是构造函数和析构函数的调用过程,如下图


QQ截图20210402224147.png

很简单吧!对,就是这么简单!那其他问题呢?比如,Base类占多少字节,Derived类呢?好了,不是本节的内容,期待下次再聊!

上一篇 下一篇

猜你喜欢

热点阅读