这是网上经常讨论的问题,今天自己也获得了一些心得,特此记录.
首先,构造函数的调用次序是递归地从派生子类依次向上进行调用,即先完成父(基)类的构造
析构函数是先派生类,然后向上调用父(基)类的析构.
但有一些比较重要的要讨论一下:
在构造函数和析构函数中,所有的函数都不能变成多态.
将析构函数声明为虚函数,可以使得里氏替换原则时析构函数可以从正确的子类开始进行链式调用.
这是网上经常讨论的问题,今天自己也获得了一些心得,特此记录.
首先,构造函数的调用次序是递归地从派生子类依次向上进行调用,即先完成父(基)类的构造
析构函数是先派生类,然后向上调用父(基)类的析构.
但有一些比较重要的要讨论一下:
在构造函数和析构函数中,所有的函数都不能变成多态.
将析构函数声明为虚函数,可以使得里氏替换原则时析构函数可以从正确的子类开始进行链式调用.