欢迎来到天天文库
浏览记录
ID:62117663
大小:1.03 MB
页数:80页
时间:2021-04-17
《最新定义资料型别教学讲义ppt课件.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、定义资料型别class簡介定義資料型別class機制允許使用者定義自己的資料型別常被稱為使用者自定型別(user-definedtypes).追加功能:(繼承)一個class可以為某個已經存在的型別加上更多機能.class定義式(Definition)分為兩部分:classheader,由關鍵字class以及一個class名稱.classbody,以一對大括號封裝起來.如:classAnimal;classAnimal{};以上大部分都應該放在headerfile中.class定義是指是訂定規格介面,實際建立實體物件,必須等到程式宣告了class物件.ClassheaderCla
2、ssbody宣告Datamember(資料成員)宣告方式和一般的變數相同.初始化方面:(交給建構子給變數初值)變數(資料成員)不能在classbody內被初始化.classButton{intid,width,height;//ok.stringcaption;//ok.boolvisible=true;};宣告資料成員不能給初值設定資料成員初值建構子:用來初始化的memberfunction當一個classobject被建立之後,會自動呼叫Constructor.建構子語法:與class同名,且無傳回值.馬上看看範例程式:ConstructorDemo.cpp宣告/使用Mem
3、berFunction(成員函式)宣告方式和一般的函式相同.如何取用class中的memberfunction?存取自己的成員直接使用變數或函式名稱.(不需要用.或->)存取其他物件的成員,則必須用dot(.)或arrow(->)運算子butObj->SetName(string(“Button1”));//指標方式butObj.SetName(string(“Button1”));//object馬上看看範例Person講解Person新型態複合資料:stringname;intage;intsalary;相關的函式:傳回姓名[stringgetName()]練習Line新型態
4、複合資料:intstart,end相關的函式:傳回斜率[doublegetSlope()]MemberFunction(成員函式)-2classButton{private://限制外界不能直接存取namestringname;public://外界可以直接存取的函式voidSetName(string_name){name=_name;}//<<<存取name直接用名字};//存取的範例Button*butObj=newButton;//建立一個物件butObj->SetName(string(“Button1”));//使用SetName的//method看看有哪些限制存取指
5、令!MemberAccess(成員的存取)-1classmember三種存取性質:public:可以在程式中的任何地點被存取.private:(資訊隱藏)只能被自己memberfunction使用或是被其class的friend存取.protected:只保留給子孫使用即derivedclass可以自由存取protected範圍下的資料與函式馬上看看如何宣告!MemberAccess(成員的存取)-2public和private的使用方式:classButton{intx,y;public:intwidth,height;voidSetName(char*n);private:c
6、harname[100];boolvisible;};privatepublicprivateMemberAccess(成員的存取)若沒指定:則default為private區段範例程式:MemberAccessDemo.cpp自動變數VS指標變數“.”運算元用於非指標object的成員存取.“->”運算元用於指標型態object的成員存取.外面如何得知private成員???看看策略!Howtoaccessprivatemember利用publicmemberfunction傳回private資料突破存取限制:Friendfriend機制:允許class同意讓朋友存取priva
7、te與protected成員allmember甚麼人可以是friend:Class或一個classmemberfunction.Friend出現的位置:出現在classbody中且不受public,private,protected段落影響.馬上看看範例程式:FriendDemo.cppClassObjectsclass的定義並不會配置任何記憶體.classobject的宣告才會配置記憶體,例如:ButtonbutObj,OkBut;物件copy相同class型別,不同obje
此文档下载收益归作者所有