c++继承-----继承中的构造和析构顺序问题

c++继承-----继承中的构造和析构顺序问题,第1张

c++继承-----继承中的构造和析构顺序问题
  • 单继承中的构造顺序问题
    • 先构造父类的再构造子类的,析构顺序相反

  • 多继承中构造顺序问题
    • 任何构造顺序问题都和初始化参数列表无关

    • 构造顺序和继承顺序一致

单继承
class A 
{
public:
	A() { cout << "A"; }
	~A() { cout << "A" ; }
protected:
};
class B :public A 
{
public:
	B() { cout << "B"; }
	~B() { cout << "B" ; }
};

int main()
{
    B b;
    return 0;

}


多继承 
#include 
using namespace std;
class A 
{
public:
	A() { cout << "A"; }
	~A() { cout << "A" ; }
protected:
};
class B :public A 
{
public:
	B() { cout << "B"; }
	~B() { cout << "B" ; }
};

class C 
{
public:
	C() { cout << "C"; }
	~C() { cout << "C"; }
};
class D
{
public:
	D() { cout << "D"; }
	~D() {cout << "D";}
};

//构造顺序和继承顺序一致:先继承C,再继承A,最后继承D
class F :public C, public A, public D
{
public:
	//任何构造顺序问题,都和初始化参数列表无关
	F() { cout << "F";}
	~F() { cout << "F";}
};
//CADF FDAC
int main() 
{
	F f;
	return 0;
}


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5635964.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-16
下一篇 2022-12-16

发表评论

登录后才能评论

评论列表(0条)

保存