a我考网

 找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 81|回复: 1

[C++] C++类的继承与派生:派生类的构造

[复制链接]
发表于 2012-7-31 21:56:58 | 显示全部楼层 |阅读模式
1、派生类的构造函数: 6 O  Z- l" n4 K
派生类的对象的数据结构是由基类中说明的数据成员和派生类中说明的数据成员共同构成。 0 Z6 Z8 v( H" L5 p' ~/ Y
构造函数不能被继承,因此派生类的构造函数必须通过调用基类的构造函数来初始化基类对象。所以在定义派生类的构造函数时除了对自己的数据成员进行初始化外,还必须负责调用基类构造函数使基类的数据成员得以初始化。如果派生类中还有子类对象,还应包含对子类 对象初始化的构造函数。
* y, o) n1 W* e4 V8 A, u•  一般格式:
  g$ [5 R3 d9 |" ?& e2 _" p< 派生类名 > ( < 派生类构造函数总参数表 > ): < 基类构造函数 >(< 参数表 1>),< 子对象名 >(< 参数表 2>) 2 ~5 q: e* u- q+ Q" O
{ ; Z7 r2 _/ F: U  o9 K+ W: ]
< 派生类汇总数据成员初始化 >
! n3 ]& l+ l; M. e* g};
6 {) r+ ?5 l4 w* X2 o! v. q&#8226;  派生类构造函数的调用顺序: " I1 M# `2 }+ P2 }' o) r
&#8226;  基类的构造函数
! y+ O* F1 |& l+ ^&#8226;  子对象类的构造函数 - z# Z- N+ m" K/ t# p8 E* e
&#8226;  派生类的构造函数
( d: i7 ^+ V, x" t3 [' @例如:分析下列程序的输出结果:
, O2 D. o6 B! X; Y, h) M! I& k#include 5 M6 n$ q& x% d9 ~( u; w# z* V1 O
class A * I6 V/ w& B3 ~( y6 A( U
{ & g$ t9 P! L) Q4 K; S. m& r
public: ( Z, O# O2 D# R7 L% J; U8 z' h
A() 6 I8 j8 T2 f- [
' N& Y! ]7 ]  p5 g+ e( C
{a=0;cout
回复

使用道具 举报

 楼主| 发表于 2012-7-31 21:56:59 | 显示全部楼层

C++类的继承与派生:派生类的构造

</p>2、析构函数:当对象被删除时,派生类的析构函数被执行。由于析构函数也不能被继承,因此在执行派生类的析构函数时,基类的析构函数也将被调用。执行顺序是先执行派生类的析构函数,再执行基类的析构函数,其执行顺序与执行构造函数时的顺序相反。   L2 r" P5 {- q5 P, q8 G: m
例如:分析下列程序的输出结果: ; g. E% ^( s# `2 ?! X6 {
#include # n7 P7 b# t7 \
class M
2 T! G) ^; H3 ]2 w{
+ g! T3 v7 y3 Gpublic: " u( i+ P/ u) A- h3 M9 O/ A9 k
M(){m1=m2=0;} , A. L4 a3 c$ U, v) B  J+ {
M(int I,int j){m1=I;m2=j;}
0 T) y- c' Q3 j! `" b* ~- G; h, j: ?& J" x! `  E0 r0 k+ V
Void Print(){cout
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|Woexam.Com ( 湘ICP备18023104号 )

GMT+8, 2024-6-17 17:52 , Processed in 0.223984 second(s), 24 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表