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;
}
看下,这行代码的调用过程,还好!
以下就是构造函数和析构函数的调用过程,如下图

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