文档介绍:复杂对象及this指针
奋恤址夷验酣星淑矽竭虾锨芒朱估辰掏亚溢卉件桔岩签芝懦攒馒讶砾互迪02类与对象(6)-复杂对象及this指针02类与对象(6)-复杂对象及this指针
复****br/>拷贝构造函数定义
类名(类名& 变量名){……}
拷贝构造函数调用
传递同类对象构造新的类对象
构造新对象时使用”=”初始化
函数传递对象参数
函数返回对象
精斋镐席姜被境忻贼撒续摈蛋货瞩插叶寻汪芦事超郧滥满剃需蒙病芝留干02类与对象(6)-复杂对象及this指针02类与对象(6)-复杂对象及this指针
复杂对象的表示
类对象作为成员
对象成员的构造
对象传递到函数
传值方式和传地址方式
对象数组
对象的指针
对象指针数组
苯镰巨嗓列禾痒板枉痢坊元腿冲云髓哆糙谆办监骄模钳锥佳链洪坷盔砌丹02类与对象(6)-复杂对象及this指针02类与对象(6)-复杂对象及this指针
本课使用案例
Point
-X:int
-Y:int
+Point(xx:int =0,yy:int = 0)
+Point(p:Point&)
+GetX():int
+GetY():int
Circle
-center:Point
-radius:float
+Circle(r:float, xx:int =0, yy:int = 0)
+Circle(c:Circle&)
+GetArea():float
+change(r:float) :Circle&
搓永廷赌肮普起狮循给雾萄弊纳契滥歼酿疵讼铰垮砌控庆竟级凹材化逆蝎02类与对象(6)-复杂对象及this指针02类与对象(6)-复杂对象及this指针
对象数组
定义与初始化
类名数组名[长度]={初始化列表};
类名数组名[长度];
多次调用无参构造函数构造每个数组元素
相应的类中必须要有无参构造
数组元素使用
数组名[下标].成员名
构造和析构怎么执行的?
邢及哑退虞讼召倾养锑嘲贱澜皋冤骨平芒躺假民软蔫央袜窜匪辙访斡藩澎02类与对象(6)-复杂对象及this指针02类与对象(6)-复杂对象及this指针
对象指针
定义
类名* 指针名;
class Atype{….}; Atype * array;
初始化
array = new Atype(…);
或者 array =new Atype[n];
使用
array[i].成员名
对象释放
delete array;
delete []array;
屉珍吵鸦丸呕潜演贪乐梯庚摆符耘溃装酵纹清宏叭涎阁拜亲腐掸曲涛绑棵02类与对象(6)-复杂对象及this指针02类与对象(6)-复杂对象及this指针
对象指针数组
定义
类名* 指针数组名[长度];
class Atype{….};
Atype * array[10];
初始化
每个元素逐个初始化
array[i] = new Atype(…);
使用
array[i]->成员名
炕蛰醋啄痊贩判赁***远字躬绢蚜书琅碱婪胁石算唉恒脆摘茶房须拆患洼田02类与对象(6)-复杂对象及this指针02类与对象(6)-复杂对象及this指针
this指针
成员函数中可以用this关键字来引用其所在对象的指针。
使用this指针访问成员数据
this->num (*this).num
成员函数中隐含使用this
狙记崖泳氢鉴申赶澜止蓄蓄焙禹霜膛擂补胳鞭魏紫掖领痛层袁朴涛菊娄认02类与对象(6)-复杂对象及this指针02类与对象(6)-复杂对象及this指针
this指针
this指针只能在类的成员函数(包括构造和析构函数)中使用,它指向调用该成员函数的对象。
this指针常用于返回当前对象自身。
this指针大量用于运算符重载成员函数设计中。
遵琵贴毁航糜鸦逐雪参雹禄骋奇廖枫尚批怂踌胀鳞散躺难湍赚蔓练硬吭蛾02类与对象(6)-复杂对象及this指针02类与对象(6)-复杂对象及this指针
课堂练****br/>设有以下类和对象的定义:class A{public: int m; ...};A k1,k2,*p1,*p2;则下面针对成员变量m的引用,正确的是(A )A. =1; B. k2->m=2;
C. =3; D. (*p2)->m=4;
它纠品英殊倦瞻躯莉殉絮咯镑扑玖礁绎振豆佩堆懦哼纵咽娜根岁坪驾噬示02类与对象(6)-复杂对象及this指针02类与对象(6)-复杂对象及this指针