书签 分享 收藏 举报 版权申诉 / 19
上传文档赚钱

类型结构与C程式设计进阶.ppt

  • 上传人(卖家):三亚风情
  • 文档编号:3397617
  • 上传时间:2022-08-27
  • 格式:PPT
  • 页数:19
  • 大小:906.50KB
  • 【下载声明】
    1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
    2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
    3. 本页资料《结构与C程式设计进阶.ppt》由用户(三亚风情)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
    4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
    5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
    配套讲稿:

    如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。

    特殊限制:

    部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。

    关 键  词:
    结构 程式 设计 进阶
    资源描述:

    1、講師:林業峻CSIE,NTU7/5,2010C+與資料結構1資料結構與C+程式設計進階大綱使用類別(Class)建立資料結構使用繼承(Inheritance)建立資料結構 2類別(Class)類別class是C+中用來封裝資料的關鍵字,當您使用類別來定義一個物件(Object)時,您考慮這個物件可能擁有的屬性(Property)與方法(Method)成員n屬性是物件的靜態描述n方法是可施加於物件上的動態操作您使用類別定義出這個物件的規格書,之後就可依這個規格書製作出一個個的物件實例,並在製作過程中設定個別物件的專屬特性資料。要訣:n屬性(該類別的變數)要存放的資料(每個物件有自己的屬性)n方法

    2、(該類別的函式)寫要執行的程式(用方法控制屬性)3如何設計類別?思考(以功能角度)n每個物件需要什麼資料?宣告屬性n每個物件需要什麼方法來操作資料?設計方法進階思考(以使用者角度)n如何讓使用類別宣告物件的人方便簡單使用。n如何避免使用類別宣告物件的人因用到不該用的資料而產生錯誤。4類別(Class)宣告一個類別(類似定義一個結構struct)語法:nclass 類別名稱public:類別名稱();/建構式,用來做物件的初始化類別名稱();/解構式,用來做物件的善後工作公開的方法或屬性;protected:/只有在同一繼承架構中可以使用的資料受保護的方法或屬性;private:/只有在此類別中

    3、可以使用的資料私有的方法或屬性;5資料的權限三種資料的權限設定npublic:公開成員表示以下所定義的成員可以使用物件名稱直接被呼叫,稱之為nprotected:受保護成員表示以下所定義的成員只可在同一繼承架構下之類別中可以使用。nprivate:私有成員表示以下所定義的成員只可在自己的類別中可以使用。在類別封裝時,有一個基本原則是:資訊的最小化公開。如果屬性可以不公開就不公開。如果要取得或設定物件的某些屬性,也是儘量透過公開方法成員來進行。6建構式與解構式建構式(Constructor)n在定義類別時,您可以使用建構函式來進行物件的初始化。解構式(Destructor)n在物件釋放資源之前,

    4、您也可以使用解構函式來進行一些善後的工作。7類別的方法之描述實作一個類別方法的內容(類似寫一個函式)除了寫在類別定義中,也可拿到類別定義以外的地方描述語法:n資料型態 類別名稱:方法名稱(參數1,參數2,參數n)程式碼;8物件的產生與使用使用類別定義物件(類似定義一個變數)語法:n類別名稱 物件名稱;n類別名稱 物件名稱(參數1,參數2,參數n);物件可透過.來使用或存取該方法或屬性(類似C語言的結構struct)若為物件指標,可透過-來使用或存取該方法或屬性 9範例:製作一個2D座標類別 10class Point2D public:Point2D();/建構式Point2D(int x,i

    5、nt y);/可傳入初始值的建構式void set(int x,int y);/設定點座標void print();/印出點座標protected:int X;/X座標int Y;/Y座標;製作以下程式範例:Point2D.h:定義類別Point2D.cpp:設計類別的方法main.cpp:主程式 Point2D.h範例:製作一個2D座標類別 11#include using namespace std;#include Point2D.hPoint2D:Point2D()X=0;Y=0;Point2D:Point2D(int x,int y)X=x;Y=y;void Point2D:set(

    6、int x,int y)X=x;Y=y;void Point2D:print()cout (X ,Y )endl;Point2D.cpp main.cpp#include using namespace std;#include Point2D.hint main()Point2D p1;Point2D p2(5,10);p1.set(20,30);p1.print();p2.print();return 0;範例:C+鏈結串列將第二章之鏈結串列範例改用C+之類別實作(LinkedList.h,LinkedList.cpp,LinkedList_main.cpp)12datanextnode

    7、10 node*intnode*head node 20node 30NULLNULLclass LinkedList練習:C+樹狀結構將第六章之二元搜尋樹範例改用C+之類別實作(BinarySearchTree.h,BinarySearchTree.cpp,BinarySearchTree_main.cpp)13class BinarySearchTree546NULLNULLNULLNULLNULLNULLNULLNULLroot node leftdataright大綱使用類別(Class)建立資料結構使用繼承(Inheritance)建立資料結構 14繼承(Inheritance)繼承

    8、(Inheritance)是物件導向程式設計的一種進階觀念,繼承就是物件的再利用,當定義好一個類別後,其他類別可以繼承這個類別的成員資料和函數。語法:class 子類別名稱:繼承權限 父類別名稱 ;在繼承的關係中n被繼承的類別:父類別(Parent class)或基礎類別(Base class),n繼承父類別的類別:子類別(Child class)或衍生類別(Derived class)15範例:製作一個3D座標類別 16#include Point2D.hclass Point3D:public Point2D public:Point3D();/建構式Point3D(int x,int y

    9、,int z);/可傳入初始值的建構式void set(int x,int y,int z);/設定點座標void print();/印出點座標private:int Z;/Z座標;製作以下程式範例:Point2D.h:定義2D類別(使用之前的Point2D範例)Point2D.cpp:設計2D類別的方法(使用之前的Point2D範例)Point3D.h:定義3D類別Point3D.cpp:設計3D類別的方法main.cpp:主程式 Point3D.h範例:製作一個3D座標類別 17#include using namespace std;#include Point3D.hPoint3D:P

    10、oint3D()Z=0;Point3D:Point3D(int x,int y,int z):Point2D(x,y)Z=z;void Point3D:set(int x,int y,int z)Point2D:set(x,y);Z=z;void Point3D:print()cout (X ,Y ,Z )endl;Point3D.cpp main.cpp#include using namespace std;#include Point3D.hint main()Point3D p1;Point3D p2(5,10,20);p1.set(20,30,40);p1.print();p2.pr

    11、int();return 0;範例:C+堆疊使用C+鏈結串列以繼承方式實作堆疊(Stack.h,Stack.cpp,Stack_main.cpp)18datanextnode 10 node*intnode*head node 20node 30NULLNULLclass LinkedListclass Stack練習:C+佇列使用C+鏈結串列以繼承方式實作佇列(Queue.h,Queue.cpp,Queue_main.cpp)19datanextnode 10 node*intnode*head rearnode 20node 30NULLNULLnode*class LinkedListclass Queue

    展开阅读全文
    提示  163文库所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
    关于本文
    本文标题:结构与C程式设计进阶.ppt
    链接地址:https://www.163wenku.com/p-3397617.html

    Copyright@ 2017-2037 Www.163WenKu.Com  网站版权所有  |  资源地图   
    IPC备案号:蜀ICP备2021032737号  | 川公网安备 51099002000191号


    侵权投诉QQ:3464097650  资料上传QQ:3464097650
       


    【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。

    163文库