class A //父类
{
int a_data;
public:
A(int data) { a_data = data; }
~A() {}//5
};
class B :public A //子类
{
int b_data;
public:
B(int data) :A(10)
{
b_data = data;//3
}
~B() {}//6
};
class A //父类
{
int a_data;
};
class B :public A //子类
{
int b_data;
public:
B(int data)
{
b_data = data;
}
~B() {}
};
与继承中构造父类的构造函数相类似:
总结:在构造自己之前,需要先构造类内的其他对象
注意事项:
class M
{
int m_data;
public:
M(int data) { m_data = data; }
~M() {}
};
class B
{
int b_data;
M m;//定义M对象
public:
B(int data):m(20)
{
b_data = data;//3
}
~B() {}//6
};
class M
{
int m_data;
};
class B
{
int b_data;
M m;
public:
B(int data)
{
b_data = data;
}
~B() {}
};
构造函数执行顺序:
析构函数执行顺序: 与构造函数的执行顺序相反
下面代码中:
//单继承
class M
{
int m_data;
public:
M(int data) { m_data = data; }//1
~M(){}//4
};
class A
{
int a_data;
public:
A(int data) { a_data = data; }//2
~A(){}//5
};
class B :public A
{
int b_data;
M m;//定义一个子对象
public:
B(int data) :A(10), m(20)//初始化
{
b_data = data;//3
}
~B(){}//6
};
下面代码中:
//多继承
class A
{
int a_data;
public:
A(int data) { a_data = data; }//1
~A(){}//4
};
class B
{
int b_data;
public:
B(int data) { b_data = data; }//2
~B(){}//5
};
class C :public A,public B//先继承于A,再继承B
{
int c_data;
public:
C(int data) :A(10),B(20)
{
c_data = data;//3
}
~C(){}//6
};
扫码关注腾讯云开发者
领取腾讯云代金券
Copyright © 2013 - 2025 Tencent Cloud. All Rights Reserved. 腾讯云 版权所有
深圳市腾讯计算机系统有限公司 ICP备案/许可证号:粤B2-20090059 深公网安备号 44030502008569
腾讯云计算(北京)有限责任公司 京ICP证150476号 | 京ICP备11018762号 | 京公网安备号11010802020287
Copyright © 2013 - 2025 Tencent Cloud.
All Rights Reserved. 腾讯云 版权所有