-
靜態數據成員與普通數據成員最大的區別:不依賴于對象,而是在類聲明的時候就存在并且獨立存在,是該類所特有的一個值。
比如說,我們定義一個學生類,該類有一個靜態成員Icount,則該成員便是代表學生類對象數量,初始值為0,每次創建一個學生對象便加1,減少一個學生對象就減去1,始終存在。
靜態數據成員的初始化可以直接在類后通過類名進行,如圖。
而若想對靜態成員變量COUNT進行修改,也只能通過專有的接口——靜態函數進行變化,普通的成員函數不能對其操作,這也是靜態函數存在的理由。當然,構造函數和析構函數也可以直接對靜態成員進行操作,這是為了方便靜態成員的使用?!跇嬙旌臀鰳嫊r快捷的對計數用的靜態成員進行變化。
查看全部 -
標準模板庫:向量
初始化:
vector<T>v1;
vector<T>v2(v1);
vector<T>v3(n,i);
vector<T>v4)(n);
查看全部 -
類模板:template<class T>
template<typename Y, int KSize>
查看全部 -
模板的關鍵字:template?
聲明參數:typename 和 class(用來表明數據類型)
template<class?T> T?max(T?a,?T?b) { ????return?(a>b)?a:b; }//函數模板
查看全部 -
前置/后置++重載:
//前置: Coordinate?&operator?++(); Coordinate?&Coordinate::operator++() { ????m_iX++; ????m_iY++; ????return?*this; } //后置: Coordinate?operator++(int); Coordinate?Coordinate::operator++(int) { ????Coordinate?old(*this); ????this->m_iX++; ????this->m_iY++; ????return?old; }
查看全部 -
Coordinate &operator-();//成員函數符號重載
friend Coorainate &operator-(Coordinate &c);//友元函數符號重載
查看全部 -
靜態:static
注意事項:
靜態數據成員必須單獨初始化;
靜態成員函數不能調用非靜態成員函數和非靜態數據成員;
靜態數據成員只有一份,且不依賴對象存在。
查看全部 -
友元類:friend 類名;
注意事項;
友元關系不可傳遞;
友元關系的單向性;
友元聲明的形式以及數量不受限制
查看全部 -
友元全局函數;友元成員函數
查看全部 -
友元函數可以直接訪問私有成員;
查看全部 -
map插入沒有push_back 方法,用insert方法進行插入
可用鍵索引,也用用迭代器,迭代器指針指向一個元素為鍵,第二個為值
map需要分別輸出key和value 分別是first second
查看全部 -
map:映射
存儲的數據都是成對出現,
具體使用方法:(訪問方式和數組類似,map對象名[key])
注意m[“S”]
查看全部 -
list:鏈表模板
特點:數據插入速度快
每個節點:數據域&指針部分
雙鏈表:既可以從頭找到尾,也可尾到頭。
插入操作,向量比鏈表較復雜
查看全部 -
c++標準模板庫:
STL:標準模板庫
STL:Standard Template Lib
1.vector 向量 (本質:對數組的封裝)
? ? 特點:讀取能在常數時間完成
具體在使用時:
vector<int>?ivec1;//初始化一個空的向量 vector<int>?ivec2(ivet1); vector<string>?svac1; vector<string>?svec2(ivec); vetor<int>?ivet4(10,-1);//用10個-1這樣的元素初始化了ivet4這個向量 vetor<string>?svec(10,"hi!");?//用10個這樣的字符串元素初始化了ivet4這個向量
查看全部 -
為什么要有模板:
int?max(int?a,int?b){return?(a>b)?a:b;} int?max(float?a,float?b){return?(a>b)?a:b;} int?max(char?a,char?b){return?(a>b)?a:b;} //除了類型不一樣其他邏輯都一樣 方案:把類型作為參數傳進計算機
template<typename T> 函數模版
查看全部
舉報