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

正文內(nèi)容

[計算機硬件及網(wǎng)絡]c面向?qū)ο蟪绦蛟O計教程下(編輯修改稿)

2025-01-04 02:14 本頁面
 

【文章內(nèi)容簡介】 vate: int v[4]。 public: vector(int a1,int a2,int a3,int a4) {v[0]=a1。v[1]=a2。v[2]=a3。v[4]=a4。} int operator[](int bi)。 }。 void main() { vector v(1,2,3,4)。 coutv[2]。} 35 千里之行 始于足下 class vector{ private: int v[4]。 public: vector(int a1,int a2,int a3,int a4) {v[0]=a1。v[1]=a2。v[2]=a3。v[4]=a4。} int operator[](int bi)。 }。 int vector::operator[](int bi) { int i=0。 if(bi0||bi=4) {cout下標錯誤! 。 exit(1)。 } return v[bi]。 } void main() { vector v(1,2,3,4)。 coutv[5]endl。 } 36 千里之行 始于足下 函數(shù)調(diào)用運算符“ ()”的重載 X(Y)是一個雙目運算符,可以看成: () —— 雙目運算符 X—— 左操作數(shù) Y—— 右操作數(shù) X(5), 可被解釋為 ()(5)。 對函數(shù)調(diào)用運算符重載只能使用成員函數(shù) ,其形式如下: 返回類型 類名 ::operator()(形參表 ) { //函數(shù)體 } 通過 this指針進行傳遞 37 千里之行 始于足下 class matrix{ private: int *m。 int row,col。 public: matrix(int,int)。 int amp。operator()(int,int)。 }。 matrix::matrix(int r,int c) {row=r。col=c。 m=new int[row*col]。 for(int i=0。irow*col。i++) *(m+i)=i。 } int amp。matrix::operator()(int r,int c) { return(*(m+r*col+c)) 。} main() { matrix a(10,10)。 couta(3,4)。 a(3,4)=2。 couta(3,4)。 } 38 千里之行 始于足下 虛函數(shù) 靜態(tài)聯(lián)編:指在編譯時就決定如何實現(xiàn)某一動作。要求在程序編譯時就知道調(diào)用函數(shù)的全部信息。因此,這種聯(lián)編類型的函數(shù)調(diào)用速度很快,效率高。 動態(tài)聯(lián)編:指系統(tǒng)在運行時動態(tài)實現(xiàn)某一動作。采用這種聯(lián)編方式,一直要到程序運行時才能確定調(diào)用哪個函數(shù)。優(yōu)點是:提供了更好的靈活性、抽象性和程序易維護性。 39 千里之行 始于足下 class base{ int a。 public:base(int x){a=x。} void show(){coutbase:aendl。} }。 class derive:public base{ int b。 public: derive(int x,int y):base(x){b=y。} void set(int y){b=y。} void show(){coutderived:b。} }。 void main(){ base b1(10),*bp。 derive d1(10,20)。 bp=amp。b1。 bpshow()。 bp=amp。d1。 bpshow()。 } 40 千里之行 始于足下 注 1 :聲明為指向基類對象的指針 可以指向它的公有派生類對象但是不允許指向它的私有派生的對象 。 注 2:允許將一個聲明為 基類的指針指向其公有派生類對象 ,但是 不允許將一個聲明為指向派生類的指針指向其基類的對象 。 注 3:聲明為指向基類對象的指針,當其指向公有派生類對象時只能用它來直接訪問 派生類從基類繼承來的成員 ,而不能直接訪問公有派生類中定義的成員。 41 千里之行 始于足下 base op1,*ptr。 derive1 op2。 derive2 op3,*op4。 ptr=amp。op1。 ptr=amp。op2。 ptr=amp。op3。 op4=amp。op1。 ptrset()。 class base{}。 class derive1:private base{}。 class derive2:public base{public: set(){}}。 判斷正確性? //錯誤,不允許將 base類指針指向私有派生類對象 //錯誤 //錯誤 42 千里之行 始于足下 虛函數(shù)的定義及使用 在上例中 ,雖然基類指針指向了派生類對象 ,但是它所調(diào)用的函數(shù)仍然是基類對象 .這說明 ,不管指針當前指向的哪個對象 ,基類對象調(diào)用的都是基類定義的函數(shù)。其原因在于普通成員的調(diào)用是在編譯時靜態(tài)聯(lián)編的。 解決的方法是將基類中的函數(shù)成員說明為虛函數(shù)。 virtual 函數(shù)類型 函數(shù)名(形參表) { 函數(shù)體 } 43 千里之行 始于足下 class base{ int a。 public:base(int x){a=x。} virtual void show() {coutbase:aendl。}}。 class derive:public base{ int b。 public: derive(int x,int y):base(x){b=y。} void set(int y){b=y。} void show(){coutderived:b。}}。 void main(){ base b1(10),*bp。 derive d1(10,20)。 bp=amp。b1。 bpshow()。 bp=amp。d1。 bpshow()。 } 44 千里之行 始于足下 關鍵字 virtual 指示 C++編譯器,函數(shù)調(diào)用 bpshow()。要在運行時確定要調(diào)用的函數(shù),即要對調(diào)用進行動態(tài)聯(lián)編。因此,程序在運行時根據(jù)指針 bp所指向的實際對象,調(diào)用該對象的成員函數(shù)。 可見,虛函數(shù)同派生類的結(jié)合可使 C++支持運行時的多態(tài)性,而多態(tài)性對面向?qū)ο蟮某绦蛟O計是非常重要的。 45 千里之行 始于足下 注意:虛函數(shù)與重載函數(shù)的關系 (1)當重載一個虛函數(shù)時,也就是說在 派生類中重新定義虛函數(shù)時,要求函數(shù)名、返回類型、參數(shù)個數(shù)、參數(shù)的類型和順序與基類中的虛函數(shù)原型完全相同 。 在派生類對基類中聲明的虛函數(shù)進行重新定義時 ,關鍵字 virtual可以寫也可以不寫 (但提倡寫 )。 (2)如果僅僅返回類型不同,其余均相同,系統(tǒng)會給出錯誤信息若僅僅函數(shù)名相同,而參數(shù)的個數(shù)、類型或順序不同,系統(tǒng)將它為普通
點擊復制文檔內(nèi)容
教學課件相關推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1