C 標準庫學習記錄

2021-07-23 22:21:06 字數 1103 閱讀 1617

2016.10.22(更新到p93)

1.關鍵字typename:

在模板類template

class myclass{ 

typename t:: subtype *ptr;

這裡,對於t型別的子型別subtype,如果要定義其指標,必須在前面新增typename」,否則,sbutype會被當做乙個static成員,於是

t::subtype *ptr 會被解釋為形別t內的數值subtype 與ptr的乘積。

typename還可以這樣用:template

2.成員模板

成員,也可以是乙個模板類。但這樣的成員模板既不能是virture,也不能有預設引數。

例如:class myclass{

template

void f(t);

最常用的功能是為template classes 中的成員提供乙個自動形別轉換。

如果這麼定義assign函式:

private:

t value;

public:

void assign&x){

value=x.value;

這樣的做法就會出錯:

myclassa;

myclassb;

a.assign(b);//error,原因:b的value型別不是a的value型別(引數型別不匹配)

修改方式:

template

class myclass {

private:

t value;

public:

template //成員函式也可以是乙個類模板

void assign(const myclass&x){//assign的引數可以是乙個新的型別

value=x.get_value();//這時候不能用x.value訪問,因為x是乙個新的型別x類,不同類的私有成員是封裝起來的

t get_value(){

return value;

void f(){

myclassa;

myclassb;

a.assign(b);//success

3.命名空間namespace(p16)

c 標準庫 ctime學習

計時clocks per sec 每秒時鐘週期數的表示式。會員 型別含義 範圍tm sec int一分鐘後 0 60 tm min int一小時後的幾分鐘 0 59 tm hour int午夜時分 0 23 tm mday int這個月的某一天 1 31 tm mon int幾個月以來 0 11 t...

C 標準模板庫(STL 學習記錄 Part2

queuename 佇列本身就是一種先進先出的限制性資料結構,因此只能通過 q.front 和 q.back 來訪問隊首 隊尾元素,時間複雜度為o 1 1 push x 將x進行入隊 2 front 和 back 分別獲得隊首 隊尾元素 3 pop 令隊首出隊 4 empty 檢測queue是否為空...

C C 學習記錄 標準庫標頭檔案stdlib h

小結 1.字串轉換,常見於主函式傳參,如 atoi 2.隨機函式,如 srand,rand 3.記憶體操作,如 malloc,free,但是注意!memset,memcpy等操作是在標頭檔案string.h中 4.環境介面,如 exit 5.abs 以下是詳細 1 字串轉換 double atof ...