1. 程式人生 > >《C++總結3》

《C++總結3》

函數定義 istream 重名 文本 建立 定義 模板類 關聯容器 mes

派生類

Class student1:public student //表示公用繼承,默認為私有的

{ public :

……

……

}

繼承的時候一定是全部繼承來,但是可以自己設定訪問屬性,或是覆蓋父成員

一般是抽象基類 構造函數和析構函數不能繼承

基類不能訪問派生類

繼承方式就是對父成員的屬性改造,私有>保護>公有(把兒子也當外人)

不管怎麽樣,父私有的,子都不能繼承和調用

多級派生 常用的是公用繼承

派生類構造函數:

Student1(int n,string nam,char s,int a):student(n,nam,s)

對象中的對象(子對象)

含有子對象的派生類的構造函數:

Student1(int n,string nam,int n1):student(n,nam),monitor(n1,nam1)

{

……//可以為空

}

多層派生的構造函數:

Student2(int n,string nam,int a,int s):student1(n,nam,a)

父和子的構造函數都是可以默認的

多重繼承:

Class D:public A,private B,protected C

{

……

}

多重繼承構造函數:

Graduate(string nam,int a,char s,string t,float sco,float w):

teacher(nam,a,t),student(nam,s,sco),wage(w)

{

……

}

多重繼承會有二義性,引用的時候要指明

虛基類 合開合的思想,第一個合就是虛基類 虛繼承

虛基類:

Class A

{ A(int){ }

……

};

Class B:virtual public A

{

B(int n):A(n)

{

……

}

……

……

};

Class C:virtual public A

{

C(int n):A(n)

{

……

}

……

……

};

Class D:public B,publicC

{D(int n):A(n),B(n),C(n) { }

……

};

*****************

A |

B C D |

E |

*****************//註意D比較特殊

域運算符::

派生類對象可以給基類對象賦值,也可以作為父類對象的引用還有指針

派生類的成員可以是基類的對象 (這其實就是類的組合)

任何的機器,只要是運行應用,界面什麽都是OS控制的,就一定有目標代碼存在,應用一般是完整的匯編代碼。但是產生應用的過程,是要用到專門的工具和平臺,要用到類庫。

任何運行程序都是和OS兼容的,而匯編代碼都是和CPU兼容的,這是計算機核心。

參數類型推導 被覆蓋的依然可以通過域運算符使用

靜態成員

重載(靜態多態)是多提的一種方式之一,還有虛函數(動態多態)

虛函數:在派生類中定義與基類同名字的函數,並且可以通過基類指針或引用來訪問

虛函數就是來避免覆蓋沖突的

靜態關聯(早期關聯) 動態關聯(滯後關聯)//用基類指針對象來訪問

虛析構函數 純虛函數

Virtual int max( )=0;

抽象類 編譯系統會構造虛函數表

類族 標準模板庫STL 標準IO 文件IO 串IO

總體上來說,C++要比C好很多,各有各的優點吧

數據流表示從內存到IO的

IO緩沖區 流類 本質就是對象之間的活動,網社交的活動構成我們時空狀態的變化

頭文件裏的流對象 類庫的接口就是頭文件

Cin流 cerr(特點就是不經過緩沖區) clog流(標準出錯流) 頭文件裏運算符重載

格式控制頭文件iomanip

流對象成員函數 格式標誌

Cout.put(‘a’).put(24); putchar

EOF文件結束 cin.get( ); getline( ) eof( ) peek( ) putback( )

Ignore()

文本文件(字符文件) 二進制文件(字節文件,內部格式文件)

文件流類 輸出文件(接受從內存的數據)

Ofstream outfile; //建立流對象

Outfile.open(“niu.txt”,ios::out);

虛函數的重載性

異質鏈表(指針數組):

Student *stu[100];

類屬參數的函數就是模板函數 類屬是參數化類型

模板是對於數據類型的模板 類模板 函數模板 模板類和模板函數是實例化的

這也是泛型程序設計

模板說明:

Template<typename T> 或者Template<class T>

類屬類型的本質是int float……(前提是要定義好)

類模板就是類的成員裏面的變量屬性的代號

在類外定義函數的時候或者是實例化的時候在有T的地方加上array<t>即可

模板類的友元函數和友元類

標準模板庫STL裏的容器(數據結構集合)container 叠代器

容器:序列容器 關聯容器 容器適配器 近容器

模板向量 構造容器

vector<int> V(10,0);

容器的本質是系統的函數調用

Vector<int> V(10,0); 裏面的數據為容器對象

容器就是數據結構的元素的集合,是一種特殊的類,在調用使用上和類一樣

容器是一個大對象,對象裏面有小元素對象

容器叠代器很有好處(本質是容器指針)

Iterator叠代器 叠代子(本質是指針)

串流對象 string對象 串流本質是內存流

匿名對象 順序索引文件 追加 標識常量 自定義流

二進制文件為隨機存取 流指針

Input.seekg(120);

Infile.seekg(-30,ios::cur);

outfile.seekg(-30,ios::end);

ostream寫指針函數 istream讀指針函數

異常檢測和處理 函數調用錯誤時產生異常,然後調用的人去處理這個異常

拋出異常之後這個函數就終結了,所以就是不喚醒,異常處理像是中斷

Throw拋出 try捕獲 catch處理

Throw niu//niu為異常類型

Try

{

……

}

Catch(參數1)

{

……

}

Catch(參數2)

{

……

}

……

……

異常列表 異常是在函數定義時候定義的

再拋出異常傳遞 構造函數裏的異常處理

圖標 cin cout的重定向 查找分類函數 文本窗口IO函數

命名空間(作用域) 嵌套命名空間

命名空間是來解決名字沖突的 命名空間成員 命名空間是大的特殊的類

無名命名空間 using 標準命名空間std

命名空間比頭文件更大

using namespace std; //std裏有標識符,要避免自己定義的與它的重名

Namespace //無名命名空間

{

Void fun()

{

cout<<”niu”<<end1;

}

} //命名空間成員可以是函數,作用和庫函數一樣

____________________________________________________________________

至此,C++概要總結完畢!

2017 6.9 蘭州 雨

《C++總結3》