C++ 基类,子对象,派生类构造函数调用顺序
生活随笔
收集整理的這篇文章主要介紹了
C++ 基类,子对象,派生类构造函数调用顺序
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
#include <iostream>
using namespace std;class A {public:A( ) {cout << "A Constructor………" << endl;}~A( ) {cout << "A Destructor………" << endl;}
};class B: public A {public:B( ) {cout << "B Constructor………" << endl;}~B( ) {cout << "B Destructor………" << endl;}
};int main() {B b;return 0;
}
#include <iostream>
using namespace std;class A {public:A( ) {cout << "A Constructor………" << endl;}~A( ) {cout << "A Destructor………" << endl;}
};class B {public:B( ) {cout << "B Constructor………" << endl;}~B( ) {cout << "B Destructor………" << endl;}
};class C: public A, B { //構(gòu)造函數(shù)調(diào)用順序,先A后B,和書寫(繼承)順序相同public:C( ) {cout << "C Constructor………" << endl;}~C( ) {cout << "C Destructor………" << endl;}
};int main() {C c;return 0;
}
#include <iostream>
using namespace std;class B1 {public:B1() {cout << "constructing B1 " << endl;}
};class B2 {public:B2() {cout << "constructing B2 " << endl;}
};class B3 {public:B3() {cout << "constructing B3 " << endl;}
};class C {public:C(): memberB1(), memberB2(), memberB3() { }private://構(gòu)造函數(shù)的調(diào)用順序和對象的創(chuàng)建先后順序有關(guān)B2 memberB2;B1 memberB1;B3 memberB3;
};int main() {C obj; // B2 B1 B3return 0;
}
#include <iostream>
using namespace std;class A {public:A() {cout << "A Constructor………" << endl;}~A() {cout << "A Destructor………" << endl;}
};class B {public:B() {cout << "B Constructor………" << endl;}~B() {cout << "B Destructor………" << endl;}
};class C: public A {private:B obj_b;public:C() {cout << "C Constructor………" << endl;}~C() {cout << "C Destructor………" << endl;}
};int main() {C obj;return 0;
}
總結(jié)
以上是生活随笔為你收集整理的C++ 基类,子对象,派生类构造函数调用顺序的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 怎么免费开通qq会员
- 下一篇: C++ 多态实现的三个条件