1、
explicit建構函式是用來防止隱式轉換的。請看下面的**:
class test1
//普通建構函式
private:
int num;
}; class test2
//explicit(顯式)建構函式
private:
int num;
}; int main()
test1的建構函式帶乙個int型的引數,**23行會隱式轉換成呼叫test1的這個建構函式。而test2的建構函式被宣告為explicit(顯式),這表示不能通過隱式轉換來呼叫這個建構函式,因此**24行會出現編譯錯誤。
普通建構函式能夠被隱式呼叫。而explicit建構函式只能被顯式呼叫。
2、const成員函式
int xconst()
x()裡面不可以修改類成員的值,只可讀不可寫
在c++中,只有被宣告為const的成員函式才能被乙個const類物件呼叫。
值得注意的是,把乙個成員函式宣告為const可以保證這個成員函式不修改資料成員,但是,如果據成員是指標,則const成員函式並不能保證不修改指標指向的物件,編譯器不會把這種修改檢測為錯誤。
資料結構與演算法分析
資料結構與演算法分析可以稱得上是程式設計師必須修煉的內功心法。資料的儲存結構 資料元素在計算機中的儲存方式 資料的操作集合 對一種資料型別的資料所有操作,例如對資料的增刪改查等等!演算法分析主要分析 下面是一些常用資料結構 一 線性表 1.陣列實現 2.鍊錶 二 棧與佇列 三 樹與二叉樹 1.樹2....
資料結構與演算法分析
資料結構 大量資料的組織方法 演算法分析 演算法執行時間的估算。涉及到計算效率。設想,如果能把時間限制從16年減至不到1秒,不很神奇嗎?在很多問題中,乙個重要的觀念是 寫出乙個可以工作的程式並不夠。如果這個程式在巨大的資料集上執行,執行時間就成了重要的 問題。演算法,是為求解乙個問題需要遵循的 被清...
資料結構與演算法分析3 3 3 5
標頭檔案 ifndef list h typedef struct node ptrtonode typedef ptrtonode list typedef ptrtonode position list creatlist void void insert int i,position p,li...