C 之類的相關知識

2021-08-21 13:51:19 字數 1015 閱讀 9634

一、函式模板

過載:引數個數不同,型別不同可以構成過載

將資料型別當引數進行傳遞(將資料型別和演算法進行分離)

//函式模板:用template去宣告模板、-----模板宣告只對dang當前函式有效

1.myswap(a,b) //隱式呼叫、不指名型別 讓編譯器自動推導

cout ----標準輸出流變數

2.函式模板可以隱式呼叫,但不支援隱式的型別轉換

強制轉換:  int a = 10;int b = 20; char c = 'a'

print(a,c)

3.函式模板和普通函式都可以呼叫的情況下,優先diao呼叫函式模板--可以通過<   >強制呼叫模板函式,內部型別可寫可不寫。

4.模板機制實現,兩次編譯

1.對模板自身編譯

2.在呼叫的位置對具體型別進行編譯

二、類模板

template

class testa

public:

testa(t a)

this->a = a;

void print()

cout << a t  a

棧------區域性變數

堆------自己申請

資料區---靜態、區域性變數

**區---執行**/常量

1.類模板的派生和繼承

2.類模板的使用

類成員的函式實現:(1)在內部  (2)在外部

類模板成員函式可以在內部實現,包括友元函式都可以在內部實現

!!!注意友元函式即使在類的內部實現,它也是乙個友元函式,不是類的成員函式

《運算子過載會使用友元函式打破封裝》

《類裡如果有友元函式一般放在類的開頭》

3.在類的外部實現類模板

*類模板成員函式如果在lei類的外部進行實現,必須全部寫成函式模板

*類的後面要跟模板引數列表

*類的內部可加可不加,但是在外部一定要加

*運算子過載<  >作為友元函式使用的時候在進行友元宣告的時候在函式名和

間加

C 之類和物件的知識

物件導向的基本思想 以誰做什麼來表達程式的邏輯,以物件為中心,物件的所有行為都通過呼叫自己的函式來完成。體現在 層面就是資料成員呼叫自己的函式以及通過函式來對自己進行操作.封裝的好處 1.可以在成員函式中做一些必要的限制 2.有時候確實不允許使用者改變資料成員 對資料的封裝一般用set來對函式賦值 ...

C 基礎知識之類繼承

using system using system.collections.generic using system.linq using system.text namespace classinherit set pubic修飾,它的子類繼承得到 public void shout class ...

C 樹的相關知識

有4種遍歷二叉樹的常用方法 前序遍歷void preorder binarytreenode t 遞迴版 迭代使用棧來實現前序遍歷 void preorderiter treenode root 迭代版 stack stack stack.push root while stack.empty if...