中職Visual C++程序設計基礎中職Flash 8.0基礎第7章 類與對象教學課件_第1頁
中職Visual C++程序設計基礎中職Flash 8.0基礎第7章 類與對象教學課件_第2頁
中職Visual C++程序設計基礎中職Flash 8.0基礎第7章 類與對象教學課件_第3頁
中職Visual C++程序設計基礎中職Flash 8.0基礎第7章 類與對象教學課件_第4頁
中職Visual C++程序設計基礎中職Flash 8.0基礎第7章 類與對象教學課件_第5頁
已閱讀5頁,還剩39頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、(中職)Visual C+程序設計基礎(中職)Flash 8.0基礎第7章 類與對象ppt課件第7章 類與對象 7.1 類7.2 對象 7.3 構造函數(shù)與析構函數(shù)7.4 類與對象的進一步討論7.5 類的友元7.6 類模板7.7 繼承與派生7.8 虛函數(shù)7.9 運算符重載 7.1 類 類是對一組客觀對象的抽象,它將該組對象所具有的共同特征(包括結構特征和行為特征)進行歸納抽象,以說明該組對象的性質和能力。因此,一個類至少包含以下兩個方面的描述:類所有實例共同具有的屬性或結構特征,稱為類的數(shù)據(jù)成員;類所有實例共同具有的操作、行為或方法,稱為類的成員函數(shù)。 在C+中,類是一種數(shù)據(jù)類型,與結構體有很多

2、相似之處,類可以看作是在傳統(tǒng)意義上的結構體上又加上了成員函數(shù)的一種數(shù)據(jù)類型。同結構體一樣,在使用類之前必須要定義類。類的定義可看作由說明部分和實現(xiàn)部分兩部分來組成的。 7.1.1 類的定義 說明部分用來說明該類中的成員,包括數(shù)據(jù)成員和成員函數(shù)的說明。成員函數(shù)是用來對數(shù)據(jù)成員進行操作的,又稱為方法,實現(xiàn)部分是用來對成員函數(shù)的定義。 1類定義的說明部分 class 類名稱 public: 公有數(shù)據(jù)成員和成員函數(shù) protected: 保護數(shù)據(jù)成員和成員函數(shù) private: 私有數(shù)據(jù)成員和成員函數(shù) ; 公有類型(public)公有成員用關鍵字public聲明,它們是類的外部接口,任何外部訪問都必須

3、通過這個接口來進行。 私有類型(private)私有成員用關鍵字private聲明。如果私有成員緊接著類名稱聲明,私有關鍵字private可以省略。私有成員完全隱藏在類中,實現(xiàn)了訪問權限的有效控制。 保護類型(protected)保護成員用protected聲明,它與私有成員基本相似,但它對類的派生類有影響。它除了可以被本類中的成員函數(shù)訪問外,還可以被本類的派生類的成員函數(shù)訪問。 其中class是定義類的關鍵字;類名稱是標識符,用于惟一標識一個類,一般以“C”開頭,以區(qū)別于其他標識符;一對大括號內是對類的說明,說明該類的所有成員。 類的成員分為數(shù)據(jù)成員和成員函數(shù),分別描述類所表達的問題屬性和行

4、為,是問題特性不可分割的兩個方面。 2類定義的實現(xiàn)部分 類定義的實現(xiàn)部分就是對類中成員函數(shù)的定義。類的成員函數(shù)描述類的行為,又叫“方法”,是程序算法的實現(xiàn)部分,是對封裝的數(shù)據(jù)進行操作的主要途徑。在類定義的說明部分給出了成員函數(shù)的原型聲明,說明函數(shù)返回值類型、函數(shù)名和函數(shù)的參數(shù)表,在類聲明之外給出函數(shù)的具體實現(xiàn),這是多數(shù)成員函數(shù)的定義方法。 與普通函數(shù)不同的是,類外定義成員函數(shù)時要指明其所屬類的名稱,具體形式為: 返回值類型 類名:函數(shù)成員名(參數(shù)表) 函數(shù)體 注意,在類聲明外定義成員函數(shù)的實現(xiàn)時,必須在成員函數(shù)名前加上所屬類名和作用域操作符“:”,從而說明該函數(shù)所屬的類。 7.1.2 類的成員

5、函數(shù) 將成員函數(shù)聲明為內聯(lián)函數(shù)有兩種方式:隱式聲明和顯式聲明。 如果將成員函數(shù)的函數(shù)體直接放在類定義體內,則該成員函數(shù)即為內聯(lián)函數(shù),這種方法稱為隱式聲明。為了提高類聲明的可讀性,一般將函數(shù)定義寫在類聲明體外,而采用關鍵字inline顯式聲明其為內聯(lián)函數(shù)。顯示聲明寫在類聲明體外的內聯(lián)成員函數(shù)有兩種方式,一種是在類聲明體內的該函數(shù)的原型聲明前加關鍵字inline,或者在類聲明體外定義函數(shù)時,在函數(shù)返回值類型前面加上inline, 在類內定義的函數(shù)被看作內聯(lián)函數(shù)(inline function),而在類外部定義的函數(shù)默認情況下都是非內聯(lián)函數(shù)。內聯(lián)成員函數(shù)和普通內聯(lián)函數(shù)相同,在編譯時編譯系統(tǒng)會將函數(shù)體

6、插入到每個調用它的地方,這樣可以減少函數(shù)調用時的時間開銷,提高執(zhí)行效率;缺點是增加了程序的代碼長度;所以,一般把相對簡單的成員函數(shù)聲明為內聯(lián)函數(shù),而把較復雜的函數(shù)定義為非內聯(lián)函數(shù)。 1內聯(lián)成員函數(shù) inline void CDate:ShowDate() coutYear/Month/Dayendl; 用關鍵字inline將成員函數(shù)ShowDate()顯式聲明為內聯(lián)函數(shù),與隱式聲明的效果完全相同。 class CDate public: void SetDate(int y,int m,int d);/非內聯(lián)成員函數(shù) void ShowDate()/內聯(lián)成員函數(shù) coutYear/Month/

7、Dayendl; private: int Year,Month,Day; ; 隱式聲明 類的成員函數(shù)也可以帶有缺省參數(shù)值,其調用規(guī)則同普通函數(shù)相同。 聲明成員函數(shù)帶有的缺省參數(shù)值有兩種方式,一種方式在類中聲明該成員函數(shù)時給出缺省參數(shù)值,如: void SetDate(int y=2008,int m=1,int d=1);2帶缺省參數(shù)的成員函數(shù)另一種方式是在函數(shù)定義中給出缺省的參數(shù)值,如:void CDate:SetDate(int y=2008,int m=1,int d=1) Year=y; Month=m; Day=d;void main() Date Date1,Date2; Dat

8、e1.SetDate(); Date2.SetDate(2008,8,24); Date1.ShowDate(); Date2.ShowDate();調用這個函數(shù)時不給出實參,就可以把日期設置為2008/1/1 函數(shù)重載是指同一個函數(shù)名對應著多個函數(shù)實現(xiàn)。在C+中,函數(shù)重載允許同一作用域內的同一個函數(shù)名可以聲明多個函數(shù),它們可以完成不同的功能,可以帶不同個數(shù)、不同類型的參數(shù)。 兩個函數(shù)成為重載函數(shù),必須具有如下特征:函數(shù)名相同,函數(shù)的作用域相同,函數(shù)的參數(shù)個數(shù)不同或參數(shù)類型不完全相同。 不僅可以在類的成員函數(shù)上實現(xiàn)重載,在構造函數(shù)上也可以實現(xiàn)函數(shù)的重載,而且構造函數(shù)的重載使得我們可以用多種方式

9、來創(chuàng)建對象。3成員函數(shù)重載 class My_class public: int abs(int x); double abs(double x); ; int My_class:abs(int x) return x0?x:x; double My_class:abs(double x) return xShowDate();tDate.ShowDate();在定義了CDate類的對象后,就可以訪問其公有成員了 注意:在類的外部只能訪問類的公有成員,不能訪問類的私有成員和保護成員;在類的內部,所有成員之間都可以通過成員名直接訪問,這就實現(xiàn)了訪問的有效控制。7.3 構造函數(shù)與析構函數(shù) 構造函數(shù)

10、的作用就是在對象創(chuàng)建時利用特定的值構造對象,將對象初始化為一個特定的狀態(tài),使此對象具有區(qū)別于彼對象的特征。構造函數(shù)完成的是從一般到具體的過程,它在對象被創(chuàng)建的時候由系統(tǒng)自動調用。 構造函數(shù)也是類的一個成員函數(shù),除了具有一般成員函數(shù)的特征之外,還有一些特殊的性質。構造函數(shù)的函數(shù)名與類名相同,而且它沒有返回值,不能有任何返回類型,也不能使用void,但在構造函數(shù)體內可有無值的return語句。構造函數(shù)通常被定義為公有函數(shù),但是,除了在創(chuàng)建對象時由系統(tǒng)自動調用之外,其它任何過程都無法再調用到它,也就是只能一次性地影響對象數(shù)據(jù)成員的初值。7.3.1 構造函數(shù) 定義構造函數(shù)使CDate類的對象在生成時就

11、獲得一個缺省的日期值,類CDate的定義修改如下: class CDate public: CDate(); /聲明構造函數(shù) CDate(int y,int m,int d); /聲明重載構造函數(shù) void SetDate(int y,int m,int d); void ShowDate(); private: int Year,Month,Day; ;構造函數(shù)的實現(xiàn)如下: CDate:CDate() /構造函數(shù)的定義 Year = 2008; Month = 1; Day = 1; CDate:CDate(int y, int m, int d) /重載的構造函數(shù)的定義 Year =y;

12、Month = m; Day = d; 7.3.2 析構函數(shù) 類的另一個特殊的成員函數(shù)是析構函數(shù),它在對象生存期即將結束的時刻由系統(tǒng)自動調用。它的作用與構造函數(shù)相反,它執(zhí)行一些在對象撤消前必須執(zhí)行的清理任務,例如釋放由構造函數(shù)申請分配的內存等。 析構函數(shù)的函數(shù)名也是固定的,就是在類名前邊加一個“”字符做前綴就構成了析構函數(shù)的函數(shù)名。與構造函數(shù)相同,析構函數(shù)也是類的一個公有成員函數(shù),被系統(tǒng)自動調用,而且在定義析構函數(shù)時,同樣不能指定任何的返回類型,也不能使用void,如果類中沒聲明析構函數(shù),系統(tǒng)也會自動生成一個不做任何事情的缺省析構函數(shù);與構造函數(shù)不同的是,構造函數(shù)可以重載,也可以帶有缺省的參數(shù)

13、值,而析構函數(shù)只能有一個,且不能接受任何參數(shù)。#include class CArray public: CArray(int size);/構造函數(shù)聲明 CArray();/析構函數(shù)聲明 int GetAt(int nIndex); void SetAt(int nIndex, int newElement);protected: int* m_Data;/存數(shù)組首地址 int m_Size;/數(shù)組中包含元素個數(shù);CArray:CArray(int size) /構造函數(shù)定義 coutConstruct the objectn; m_Data = new intsize;/申請內存空間 m_

14、Size = size;/設置數(shù)組元素個數(shù)CArray:CArray()/析構函數(shù)定義 coutDestruct the objectn; delete m_Data;/釋放內存空間int CArray:GetAt(int nIndex)/獲取數(shù)組元素的值 return m_DatanIndex;void CArray:SetAt(int nIndex,int newElement)/設置數(shù)組元素的值 m_DatanIndex = newElement;void main() CArray a(10); for (int i=0;i10;i+) a.SetAt(i,i); for (i=0;i

15、10;i+) coutai=a.GetAt(i)”形式進行訪問: Dates-ShowDate(); (Dates+1)-ShowDate(); 若只有用戶自定義的帶有參數(shù)且無缺省值的構造函數(shù),則必須在創(chuàng)建對象數(shù)組時使用構造函數(shù)進行初始化,其形式為: 類名 數(shù)組名常量表達式=類名(參數(shù)表),類名(參數(shù)表),類名(參數(shù)表);2若類中只有需要參數(shù)的構造函數(shù)時3若類的構造函數(shù)只需要1個參數(shù)時7.5 類的友元 友元提供了不同類的成員函數(shù)之間、類的成員函數(shù)與一般函數(shù)之間進行數(shù)據(jù)共享的機制。也就是說,通過友元,一個普通函數(shù)或者其它類的成員函數(shù)可以訪問到封裝于某一個類中的數(shù)據(jù) 7.5.1 友元函數(shù)的定義及作

16、用 友元函數(shù)是在類定義中用關鍵字friend聲明的非成員函數(shù)。注意,友元函數(shù)可以是一個普通的函數(shù),也可以是其它類的成員函數(shù),它不是本類的成員函數(shù),但是在它的函數(shù)體中可以通過對象使用本類的私有和保護成員。 在CCircle類定義體中聲明友元函數(shù)時,只給出了友元函數(shù)原型,友元函數(shù)fErr的實現(xiàn)定義在類外??梢钥吹皆谟言瘮?shù)中通過對象名直接訪問了CCircle類中的私有數(shù)據(jù)成員R、X和Y,這就是友元的關鍵所在。7.5.1 友元函數(shù)的定義及作用class CCircle public: /外部接口 CCircle(int rr=10,int xx=0,int yy=0) R=rr;X=xx;Y=yy;

17、 int GetR() return R; int GetX() return X; int GetY() return Y; friend double fErr(CCircle &a ,CCircle &b); /聲明友元函數(shù)private: int R,X,Y;double fErr(CCircle &a, CCircle &b) double x=double(c1.X-c2.X); double y=double(c1.Y-c2.Y); return (c1.R+c2.R)-(sqrt(x*x+y*y); 通過友元類聲明,友元類的成員函數(shù)可以通過對象名直接訪問到隱藏的數(shù)據(jù),達到高效協(xié)

18、調工作的目的。在較為復雜的問題中,實現(xiàn)不同類之間的數(shù)據(jù)共享,友元類的使用也是很必要的選擇。7.5.2 友元類 類也可以聲明為另一個類的友元,稱為友元類。一般的語法格式為: class B friend class A; ; 關于友元,還有兩點需要注意:一是友元關系是不能傳遞的,A類是B類的友元,C類是A類的友元,C類和B類之間,如果沒有聲明,就沒有任何友元關系,不能進行數(shù)據(jù)共享。第二,友元關系是單向的,如果聲明A類是B類的友元,A類的成員函數(shù)就可以訪問B類的私有和保護數(shù)據(jù),但B類的成員函數(shù)不能訪問A類的私有、保護數(shù)據(jù)。7.6 類模板 類是對象的抽象與描述,而類模板是類的抽象。 7.6.1 類模

19、板的定義類模板的定義形式:template class 類名;若在類聲明體外定義類模板的成員函數(shù),定義形式:template 函數(shù)類型 類名 :函數(shù)名(參數(shù)列表)7.6.2 定義類模板對象 聲明了類模板后,就可以用類模板定義對象了。當使用無參的構造函數(shù)創(chuàng)建對象時,定義形式為: 類名 對象;若使用有參的構造函數(shù)創(chuàng)建對象時,定義形式為: 類名 對象(構造函數(shù)實參列表);7.7 繼承與派生 繼承是C+的另一個很重要的機制,這一機制支持面向對象設計思想中的層次概念。它允許一個類繼承其它類的屬性和功能,被繼承的類稱為基類或父類,繼承的類稱為派生類或子類。派生類不僅可以繼承基類的功能和屬性,還可以根據(jù)需要

20、定義新的屬性和功能,以剔除那些不適合其用途的操作,增加新的功能。因此,繼承可使用戶重用基類的代碼,專注于派生類的新代碼,提高代碼的可重用性。 當派生類只有一個基類時,我們稱這種繼承方式為單一繼承,當派生類有多個基類時,則這種繼承稱多重繼承。7.7.1 派生類定義單繼承的派生類的形式: class 派生類名:繼承方式 基類名 派生類新增加的成員 ;1定義派生類 派生類名是要定義的新類的名字,是“基類名”的派生類,基類是已定義的類。派生類的繼承方式有public、protected和private三種,也稱為派生方式。這三種繼承方式指定了派生類成員以及類外對象對于從基類繼承來的成員的訪問權限,缺省

21、情況下為私有派生。派生類中除了繼承的基類的所有成員(不繼承構造函數(shù)和析構函數(shù))外,還可以增加自己的新成員,則在類定義體內定義派生類新增加的數(shù)據(jù)成員和成員函數(shù)。派生類又稱為導出類或子類,它具有如下特點: 可在基類所提供的基礎上定義新成員。 可在自己類中隱藏基類的任何成員。 可在派生類中重新定義基類中的函數(shù),即覆蓋基類的成員函數(shù)可見,繼承和派生的目的在于重用基類的某些屬性,并對基類進行裁剪,以制定出適合于某種需要的新的類。2繼承基類成員 由基類派生出派生類的目的是為了重用基類的特性,除了基類的構造函數(shù)和析構函數(shù),派生類繼承了基類的其余所有成員。類的派生方式有public(公有派生)、protect

22、ed(保護派生)和private(私有派生)三種,不同的派生方式使得派生類對基類中具有不同訪問屬性的成員的訪問屬性也有所不同, 對基類中的公有成員的繼承若派生類是基類的公有派生,則基類中的公有成員在派生類中仍為公有成員;若派生類是基類的保護派生,則基類中的公有成員成為派生類的保護成員;若派生類是基類的私有派生,則基類中的公有成員在派生類中成為私有成員。 對基類中的保護成員的繼承若派生類是基類的公有派生或保護派生,基類中的保護成員在派生類中仍是保護成員,僅能在派生類的成員中被使用,而不允許派生類的使用者訪問,但可以被派生類的派生類繼承。若派生類是基類的私有派生,基類中的保護成員都作為派生類的私有

23、成員,只能被派生類的成員函數(shù)訪問。 對基類的私有成員的繼承無論派生類是基類的何種派生,派生類都不能訪問所繼承的基類的私有成員。 7.7.2 派生類對基類成員的覆蓋 在派生類中可以定義同基類中的成員同名的成員,則在派生類中從基類繼承來的該成員被編譯器隱藏起來,從而可以實現(xiàn)派生類對從基類繼承來的成員的覆蓋。如果此時還要在派生類中訪問基類的被隱藏的成員,則必須使用作用域運算符“:”以明確指定其類。 注意,作用域運算符“:”不能改變基類成員的訪問性質,即基類成員是否能在派生類中被訪問,取決于基類成員的訪問性質和繼承方式。 7.7.3 派生類的構造函數(shù)和析構函數(shù) 要實現(xiàn)對繼承來的基類成員的初始化,派生類

24、的構造函數(shù)必須調用基類的構造函數(shù)。所以,在定義派生類的構造函數(shù)時除了對自己的新增數(shù)據(jù)成員初始化外,還必須負責調用基類構造函數(shù),使基類的數(shù)據(jù)成員得以初始化(若派生類中還有基類子對象,則還應該包含對子對象的初始化)。 假設派生類Y是從n個基類X1,X2,X3,Xn中派生的,則對于這種多繼承的派生類的構造函數(shù)的定義形式為: Y:Y(參數(shù)表0):X1(參數(shù)表1),X2(參數(shù)表2),Xn(參數(shù)表n)而單一繼承基類X的派生類Y的構造函數(shù)的定義形式為: Y:Y(參數(shù)表):X(參數(shù)表) 派生類中新數(shù)據(jù)成員初始化 1定義派生類的構造函數(shù) 類的構造函數(shù)與析構函數(shù)的特點均適合于派生類的構造函數(shù)與析構函數(shù)。在構造派生

25、類對象時,先要調用基類的構造函數(shù),然后再調用派生類的構造函數(shù);而析構函數(shù)的調用順序剛好相反,先調用派生類的析構函數(shù),再調用基類的析構函數(shù)。 創(chuàng)建派生類對象時,先調用基類的構造函數(shù),對基類的數(shù)據(jù)成員進行初始化,然后再調用派生類的構造函數(shù)。 派生類是否定義析構函數(shù)與基類無關。 派生類的構造函數(shù)可以重載,以調用基類的不同的構造函數(shù)。 派生類的構造函數(shù)體內一般只初始化派生類新增的數(shù)據(jù)成員,而不直接初始化基類成員,即使能夠直接訪問它們。 如果基類中根本沒有定義構造函數(shù)或者有無參的構造函數(shù),則派生類構造函數(shù)的定義中可以省略對基類構造函數(shù)的調用。如果基類只有使用一個或多個參數(shù)的構造函數(shù)時,則派生類必須定義構

26、造函數(shù)并要調用基類的構造函數(shù),提供將參數(shù)傳遞給基類構造函數(shù)的途徑。 2派生類的構造函數(shù)與析構函數(shù)的特點7.8 虛函數(shù) 多態(tài)性就是向一個對象發(fā)出的同一個消息(即調用對象的某個成員函數(shù)),而得到不同的操作結果。這一方面是因為類成員函數(shù)的重載;另一方面是因為派生類的成員函數(shù)可以覆蓋基類的成員函數(shù),而且C+允許定義為基類類型的指針指向派生類的對象,允許定義為基類類型的引用去引用其派生類對象,從而使得調用同一個成員函數(shù)名時得到不同的結果。 C+支持兩種多態(tài)性:一種是編譯時的多態(tài)性,稱為“靜態(tài)綁定”;另一種是運行時的多態(tài)性,稱為“動態(tài)綁定”。所謂綁定,就是將一個函數(shù)調用鏈接上相應的函數(shù)體代碼的過程。7.8

27、.1 多態(tài)性 編譯時的多態(tài)性就是在編譯過程中決定了函數(shù)的確切調用,稱為“靜態(tài)綁定”,也稱為“靜態(tài)聯(lián)編”。 在一個類中聲明的重載成員函數(shù)的靜態(tài)綁定 對于一個類中的重載成員,編譯系統(tǒng)根據(jù)重載函數(shù)的參數(shù)個數(shù)、類型及順序的差別,在編譯時就確定了程序中函數(shù)的調用與哪個函數(shù)綁定。 派生類中重載和覆蓋基類中的成員函數(shù)的靜態(tài)綁定 對于在派生類中覆蓋基類中的成員函數(shù),則基類的該成員被編譯器隱藏起來,派生類對象調用的是它定義的函數(shù)。若要在派生類中調用基類的被隱藏的成員,則必須使用作用域運算符“:”,即在函數(shù)名前加上“基類名:”用來綁定基類的函數(shù)。1編譯時的多態(tài)性 不論用類對象、對象指針或對象引用哪種形式訪問成員函

28、數(shù)(非虛函數(shù)),編譯系統(tǒng)都根據(jù)它們的定義類型,在編譯過程中進行靜態(tài)綁定。 運行時的多態(tài)性是在程序運行時根據(jù)運行時所產(chǎn)生的信息決定調用哪個函數(shù),它是運行過程中發(fā)生的,編譯系統(tǒng)在編譯時是無法確定的,因此,也稱為“后綁定”。運行時的多態(tài)性由虛函數(shù)來實現(xiàn)。2運行時的多態(tài)性 虛函數(shù)(virtual function)就是在類中用保留字virtual聲明的成員函數(shù)。在派生類中重定義所繼承的成員虛函數(shù)時,即使沒有保留字virtual,該函數(shù)仍是虛函數(shù),但為了更好地表達這些函數(shù)的實質,最好加上這個保留字。一個含有虛函數(shù)的類稱為多態(tài)類,無論這些虛函數(shù)是繼承下來的,還是在派生類中新增加的。 一個類的虛函數(shù)僅對派生

29、類中重定義的函數(shù)起作用,對其它函數(shù)沒有影響。C+系統(tǒng)對調用虛函數(shù)進行動態(tài)綁定,而普通函數(shù)則是靜態(tài)綁定。7.8.2 虛函數(shù) 在基類中若不給出虛函數(shù)的具體定義,而是把它的定義留給派生類去完成,這時可將此虛函數(shù)聲明為純虛函數(shù)。純虛函數(shù)聲明的一般形式為: virtual 類型 函數(shù)名(參數(shù)列表) = 0; 包含純虛函數(shù)的類為抽象基類。抽象基類只能用來派生新類,它不能定義對象。7.8.3 抽象基類7.9 運算符重載 重載(overloaded)是C+的一個重要特征,不僅可以重載函數(shù),還可以重載運算符。 在C+中,運算符實際上也是函數(shù),只是在描述運算符函數(shù)的時候,使用了一個關鍵字operator,而其它方面跟普通函數(shù)是一樣的。運算符重載跟函數(shù)重載一樣,但是由于運算符的特殊性質,運算符重載也有很多函數(shù)重載不具備的性質。 要實現(xiàn)用戶定義類的運算符重載,要求重載運算符的函數(shù)能訪問運算對象的私有成員,所以,在C+中有兩種形式的函數(shù)可實現(xiàn)運算符重載,就是成員函數(shù)或友元函數(shù)。 7.9.1 運算符重載概述用類的成員函數(shù)實現(xiàn)運算符重載,首先要在類中進行原型聲明: 返回類型 operator 重載的運算符(參

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論