freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

c面向?qū)ο蟪绦蛟O(shè)計(jì)譚浩強(qiáng)版復(fù)習(xí)總結(jié)-wenkub

2024-11-03 22 本頁(yè)面
 

【正文】 每一層派生類(lèi)中該函數(shù)都保持虛函數(shù)特性。同一基類(lèi)的不同派生類(lèi)對(duì)象之間也不能賦值。派生類(lèi)的對(duì)象可以初始化基類(lèi)的引用。若虛基類(lèi)由非虛基類(lèi)派生而來(lái),則仍按先調(diào)用基類(lèi)構(gòu)造函數(shù),再調(diào)用派生類(lèi)構(gòu)造函數(shù)的順序。虛基類(lèi)虛基類(lèi)的定義格式為:class :virtual 。必須包含完成所有基類(lèi)初始化所需的參數(shù) 構(gòu)造函數(shù)調(diào)用順序是:先調(diào)用所有基類(lèi)的構(gòu)造函數(shù),再調(diào)用對(duì)象成員類(lèi)構(gòu)造函數(shù),最后調(diào)用派生類(lèi)的構(gòu)造函數(shù)。友元關(guān)系是不能繼承的。當(dāng)基類(lèi)的構(gòu)造函數(shù)使用一個(gè)或多個(gè)參數(shù)時(shí),派生類(lèi)必須定義構(gòu)造函數(shù),提供將參數(shù)傳遞給基類(lèi)構(gòu)造函數(shù)的途徑。():(),(){ }。派生類(lèi)繼承了基類(lèi)的全部數(shù)據(jù)成員和除了構(gòu)造、析構(gòu)函數(shù)之外的全部成員函數(shù),它們?cè)谂缮?lèi)中的訪問(wèn)屬性由繼承方式控制。//基類(lèi)成員}。f){?} 重載類(lèi)型轉(zhuǎn)換運(yùn)算符函數(shù)格式: operator〈返回基本類(lèi)型名〉(){??return 〈基本類(lèi)型值〉 } 類(lèi)類(lèi)型轉(zhuǎn)換函數(shù)只能是成員函數(shù),不能是友元函數(shù)。)。is, ClassName amp。, ClassName amp。重載為類(lèi)的友元函數(shù)語(yǔ)法形式friend operator (){;} ++為前置運(yùn)算符時(shí),它的運(yùn)算符重載函數(shù)的一般格式為: A operator ++(A amp。友元聲明以關(guān)鍵字friend開(kāi)始,只能出現(xiàn)在被訪問(wèn)類(lèi)的定義中。()const。常對(duì)象是其數(shù)據(jù)成員值在對(duì)象的整個(gè)生存期間內(nèi)不能被改變的對(duì)象。coutxthisx(*this).x this指針是一個(gè)const指針,成員函數(shù)不能對(duì)其進(jìn)行賦值。this指針指向調(diào)用該函數(shù)的對(duì)象,即this指針的值是當(dāng)前被調(diào)用的成員函數(shù)所在的對(duì)象的起始地址。=amp。靜態(tài)成員函數(shù)可以直接訪問(wèn)該類(lèi)的靜態(tài)成員,但不能直接訪問(wèn)類(lèi)中的非靜態(tài)成員。靜態(tài)數(shù)據(jù)成員初始化格式如下:::=。//復(fù)制構(gòu)造函數(shù)復(fù)制構(gòu)造函數(shù)只有一個(gè)參數(shù),并且是對(duì)同類(lèi)對(duì)象的引用。//無(wú)參構(gòu)造函數(shù) Box(int h,int w ,int len):height(h),width(w),length(len){}//帶參構(gòu)造函數(shù) 復(fù)制構(gòu)造函數(shù)定義()。. 通過(guò)指向?qū)ο蟮闹羔樧兞吭L問(wèn)對(duì)象中的成員。delete運(yùn)算符用來(lái)釋放指向的動(dòng)態(tài)存儲(chǔ)空間。a=i。當(dāng)amp。引用類(lèi)型變量的初始化值不能是一個(gè)常數(shù)。refmax=max。amp。在說(shuō)明時(shí)進(jìn)行初始化是對(duì)這種常量置值的唯一方法,不能用賦值運(yùn)算符對(duì)這種常量進(jìn)行賦值。函數(shù)聲明的一般形式為函數(shù)類(lèi)型 函數(shù)名(參數(shù)表)函數(shù)模板的定義template函數(shù)定義例子:template T max(T a,T b){ return(ab)? a:b。 = ;其中原變量名必須是一個(gè)已定義過(guò)的變量。refmax并沒(méi)有重新在內(nèi)存中開(kāi)辟單元,只是引用max的單元。一旦引用被聲明,它就不能再指向其它的變量。m的前面有類(lèi)型符時(shí)(如int amp。內(nèi)聯(lián)函數(shù)定義的一般格式為:inline (){ } 作用域運(yùn)算符::a表示全局作用域中的變量a。使用格式如下:delete 或delete[] 第2章 面向?qū)ο蠡靖拍蠲嫦蜻^(guò)程編程與面向?qū)ο缶幊痰膮^(qū)別:面向過(guò)程編程先確定算法,再確定數(shù)據(jù)結(jié)構(gòu); 面向?qū)ο缶幊滔却_定數(shù)據(jù)結(jié)構(gòu),再確定運(yùn)算。 通過(guò)對(duì)象的引用訪問(wèn)對(duì)象中的成員。(const amp。靜態(tài)成員是類(lèi)的所有對(duì)象共享的成員,而不是某個(gè)對(duì)象的成員,它在對(duì)象中不占存儲(chǔ)空間,是屬于整個(gè)類(lèi)的成員。在類(lèi)的成員函數(shù)中可以直接訪問(wèn)該類(lèi)的靜態(tài)數(shù)據(jù)成員,而不必使用成員訪問(wèn)運(yùn)算符或類(lèi)名限定修飾符。第3章 詳解對(duì)象對(duì)象指針就是用于存放對(duì)象數(shù)據(jù)起始地址的變量。通過(guò)指針訪問(wèn)對(duì)象成員一般格式如下: boxpvolumn()。復(fù)制構(gòu)造函數(shù)中隱含使用this指針: TAdd(const TAddamp。靜態(tài)成員中不能訪問(wèn)this指針,因?yàn)殪o態(tài)成員函數(shù)不從屬于任何對(duì)象。const ()。聲明一維對(duì)象數(shù)組的一般格式為: [] 6 第4章 運(yùn)算符重載重載為類(lèi)的成員函數(shù)格式如下: operator (){ 函數(shù)體 } A operator +(A amp。具體格式如下:friend ()。a)++為后置運(yùn)算符時(shí),它的運(yùn)算符重載函數(shù)的一般格式為: A operator ++(A amp。)。f){?} 重載輸出(插入)運(yùn)算符的一般格式為:friend ostream amp。ostream amp。轉(zhuǎn)換函數(shù)的操作數(shù)是對(duì)象。class B:public A //A派生了B,B繼承了A,//B自動(dòng)擁有A的成員 {int j。三種繼承方式下派生類(lèi)中基類(lèi)成員的訪問(wèn)控制權(quán)限無(wú)論是哪種繼承方式,基類(lèi)的私有成員在派生類(lèi)中都是不可被訪問(wèn)的。構(gòu)造函數(shù)調(diào)用順序?yàn)椋夯?lèi)的構(gòu)造函數(shù)→對(duì)象成員構(gòu)造函數(shù)→派生類(lèi)的構(gòu)造函數(shù)。這時(shí),派生類(lèi)構(gòu)造函數(shù)的函數(shù)體可能為空,僅起到參數(shù)傳遞作用。B類(lèi)是A類(lèi)的友元,C類(lèi)是B類(lèi)的派生類(lèi),則C類(lèi)和A類(lèi)之間沒(méi)有任何友元關(guān)系,除非C類(lèi)聲明A類(lèi)是友元。處于同一層次的各基類(lèi)構(gòu)造函數(shù)的調(diào)用順序取決于定義派生類(lèi)時(shí)所指定的基類(lèi)順序,與派生類(lèi)構(gòu)造函數(shù)中所定義的成員初始化列表順序無(wú)關(guān)?!菊f(shuō)明】引進(jìn)虛基類(lèi)后,派生類(lèi)對(duì)象中只存在一個(gè)虛基類(lèi)成員的副本。如果在虛基類(lèi)中定義了帶參數(shù)的構(gòu)造函數(shù),則要在其所有派生類(lèi)(包括直接派生類(lèi)或間接派生類(lèi))中,通過(guò)構(gòu)造函數(shù)的初始化表對(duì)虛基類(lèi)進(jìn)行初始化。派生類(lèi)的對(duì)象的地址可以賦值給基類(lèi)的指針變量。虛函數(shù)虛函數(shù)就是在基類(lèi)中被關(guān)鍵字virtual說(shuō)明、并在一個(gè)或多個(gè)派生類(lèi)中被重新定義的成員函數(shù)。因此,在派生類(lèi)中重新定義該函數(shù)時(shí),可以省略關(guān)鍵字virtual。構(gòu)造函數(shù)不能是虛函數(shù)。如果一個(gè)類(lèi)的析構(gòu)函數(shù)是虛函數(shù),那么,由它派生的所有子類(lèi)的析構(gòu)函數(shù)也是虛函數(shù)。抽象類(lèi)無(wú)法實(shí)例化,即不能創(chuàng)建抽象類(lèi)的對(duì)象。stdiostream:用于混合使用C和C++的I/O操作。(ios::scientific)。填充字符的作用是當(dāng)輸出值不滿(mǎn)輸出寬度時(shí)用填充字符來(lái)填充,默認(rèn)填充字符為空格。默認(rèn)輸出精度為6 用get函數(shù)讀入一個(gè)字符(1)不帶參數(shù)的get函數(shù)()用來(lái)從指定的輸入流中提取一個(gè)字符(包括空白字符),函數(shù)的返回值就是讀入的字符。3)有三個(gè)參數(shù)的get函數(shù)(字符數(shù)組/字符指針,字符個(gè)數(shù)n,終止字符)從輸入流中讀取n1個(gè)字符,賦給指定的字符數(shù)組(或字符指針指向的數(shù)組)。eof函數(shù)無(wú)參函數(shù),表示文件結(jié)束。如果要訪問(wèn)的字符是文件結(jié)束符,則函數(shù)值是EOF。當(dāng)用于輸出時(shí),若實(shí)際寬度小于設(shè)置寬度時(shí),數(shù)據(jù)向右對(duì)齊,反之則按數(shù)據(jù)的實(shí)際寬度輸出。參數(shù)可以是字符常量或字符變量。setiosflags(ios::fixed)用定點(diǎn)方式表示實(shí)數(shù)。setiosflags(ios::left)輸出數(shù)據(jù)左對(duì)齊 setiosflags(ios::right)輸出數(shù)據(jù)右對(duì)齊設(shè)置輸入/輸出整型數(shù)數(shù)制dec、hex和oct。對(duì)于ifstream流類(lèi),mod的值為ios::in。3章 類(lèi)和對(duì)象 類(lèi)與對(duì)象的基本概念 構(gòu)造函數(shù)與析構(gòu)函數(shù)例:點(diǎn)類(lèi) Point class Point { private: int x,y。} Point(Point amp。} int GetY()const { return y。}。public: Person(char *n, int a, char s)。 39。} void SetName(char *n)。} int GetAge()const { return age。include “” include using namespace std。sex = s。age = 。strcpy(name,n)。this指針C++為成員函數(shù)提供了一個(gè)名字為this的指針,這個(gè)指針?lè)Q為自引用指針。與一般的數(shù)據(jù)成員不同,無(wú)論建立多少個(gè)類(lèi)的對(duì)象,都只有一個(gè)靜態(tài)數(shù)據(jù)的拷貝。訪問(wèn)靜態(tài)數(shù)據(jù)成員可以通過(guò)對(duì)象或指針來(lái)訪問(wèn),也可以通過(guò)類(lèi)名::來(lái)訪問(wèn)。public: Point(int xx=0, int yy=0){ x=xx。p){ x=。} int GetY()const { return y。} }。友元成員一個(gè)類(lèi)的成員函數(shù)也可以作為另一個(gè)類(lèi)的友元,這種成員函數(shù)不僅可以訪問(wèn)自己所在類(lèi)對(duì)象中的所有成員,還可以訪問(wèn)friend聲明語(yǔ)句所在類(lèi)對(duì)象中的所有成員。友元關(guān)系也不具有傳遞性。public: Point(int xx=0, int yy=0){ x=xx。} void SetXY(int xx, int yy){ x=xx。friend double Dist(Point p1, Point p2)。return sqrt(x*x+y*y)。//圓心 public: Circle(){} Circle(int x, int y, double r): center(x,y){ SetRadius(r)。} void SetValue(int x, int y, double r){ (x,y)。}。 引用名const對(duì)象const對(duì)象的說(shuō)明形式如下: const 類(lèi)名 對(duì)象名[(參數(shù)表)]。const數(shù)據(jù)成員const數(shù)據(jù)成員只能通過(guò)構(gòu)造函數(shù)的初始化列表來(lái)獲得初始值。const是函數(shù)類(lèi)型的一個(gè)組成部分,因此在函數(shù)的實(shí)現(xiàn)部分也要帶關(guān)鍵字const。//不能寫(xiě)成const int b=10,因類(lèi)的定義還沒(méi)分配空間 int amp。k):b(j),c(k){ a=i。} Circle(Point p, double r): Point(p){ SetRadius(r)。SetRadius(r)。const double PI=。對(duì)從基類(lèi)繼承下來(lái)的成員初始化工作是通過(guò)調(diào)用基類(lèi)的構(gòu)造函數(shù)來(lái)完成的,調(diào)用方法是在派生類(lèi)的構(gòu)造函數(shù)中用初始化列表。在同名覆蓋的情況下,可以使用基類(lèi)名+作用域分辨符來(lái)訪問(wèn)基類(lèi)的同名成員。例:學(xué)生類(lèi) Student // include “” class Student: public Person { protected: char *Department。} Student(char *, int, char, char *, int)。} void SetDep(char*)。} void Show()。strcpy(Department, dep)。strcpy(Department, )。strcpy(Department, dep)。} }。class Z: public X, public Y { public: int d。} }。class Y: public W { public: int c。Z(int i, int j, int k, int l): X(i,j),Y(i,k){ d=l。} }。class Y: virtual public W { public: int c。Z(int i, int j, int k, int l): W(i),X(i,j),Y(i,k){ d=l。(3)若同一層次中同時(shí)包含虛基類(lèi)和非虛基類(lèi),應(yīng)先調(diào)用虛基類(lèi)的構(gòu)造函數(shù),再調(diào)用非虛基類(lèi)的構(gòu)造函數(shù),最后調(diào)用派生類(lèi)構(gòu)造函數(shù)。 賦值兼容規(guī)則所謂賦值兼容規(guī)則是指在需要基類(lèi)對(duì)象的任何地方都可以使用公有派生類(lèi)的對(duì)象來(lái)替代。public: SeqList(int sz=100)。} void Insert(const int amp。int Find(const int amp。SeqList::SeqList(int sz){ MaxSize=sz。x, int k){ if(ksize+1){ cerr=k1。}void SeqList::Delete(int k){ if(size==0){ cerrsize){ cerrint SeqList::GetData(int k)const { if(ksize){ cerrint SeqList::Find(const int amp。class Complex { private: double re, im。} double imag(){ return im。operator+=(Complex amp。)。Complex amp。, Complex amp。)。friend Complex operator/(Complex amp。, Complex amp。)。)。Complex amp。return *this。im= 。c){ double t = re * * )/ m。a, Complex amp。b){ return Complex()。}bool operator==(Complex amp。 == 。}ostream amp。c){ is 。void reduce()。} Fraction amp。operator=(Fraction amp。)。Fraction amp。friend Fraction operator+(Fraction amp。, Fraction amp。)。friend bool operator==(Fraction amp。, Fraction amp。)。friend ostream amp。}。if(den==0)den = 1。f){ num = num * + den * 。} Fraction amp。x, Fraction amp。y){ return Fraction( * , * )。} bool operator!=(Fraction amp。} bool operator(Fraction amp。x, Fraction amp。is, Fraction amp。} int gcd(int m, int n){ int k。} return m。int sgn = num 類(lèi)型轉(zhuǎn)換通過(guò)構(gòu)造函數(shù)將別的類(lèi)型轉(zhuǎn)換為這個(gè)類(lèi)的類(lèi)型 如復(fù)數(shù)Complex類(lèi)的構(gòu)造函數(shù) Complex(double r){ re=r。? ? } Explicit也同樣禁止用賦值來(lái)進(jìn)行帶有類(lèi)型轉(zhuǎn)換的初始化行為 如,不可以 Stack s=10。pcshow()。pcshow()。}關(guān)于虛函數(shù),有以下幾點(diǎn)如果成員函數(shù)是通過(guò)引用或指針,而不是通過(guò)對(duì)象來(lái)調(diào)用,那么,如果沒(méi)有使用virtual,
點(diǎn)擊復(fù)制文檔內(nèi)容
環(huán)評(píng)公示相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖片鄂ICP備17016276號(hào)-1