複習各種技術

2022-07-18 12:27:12 字數 891 閱讀 1233

c++允許(且只允許)建構函式使用一種特殊的語法為初始化類中的常量,稱為成員初始化列表(member initializer list),成員初始化列表由逗號分隔的初始化列表組成,其位於構造函式引數列表的右括號後函式體的開始左大括號之前,以冒號開始,成員名後面跟括號,括號內為其初始化值,然後以逗號相隔每個成員。其中可以對所有的成員進行初始化,但是對於非靜態const成員和被宣告為引用的類成員來說,只能使用這種方式初始化:

class cqueue  ;

cqueue::cqueue(int qs,int bb):qsize(qs),aa(bb)

因為const和引用都是必須在建立時就初始化的。

雖然對於普通的成員來說,使用成員初始化列表和在函式體中賦值沒什麼區別,但是對於本身是類物件的成員來說,使用成員初始化列表的效率更高。

資料成員被初始化的順序與它們出現在類宣告中的順序一致,而與初始化器中的排列順序無關。

不能將成員初始化列表語法用於建構函式之外的其他類方法。

成員初始化列表使用的括號方式也可以用於常規初始化,即int game = 16;等同於 int game(16);這樣,初始化內建型別就像初始化類物件一樣,c++11允許以更加直觀的方式進行類內初始化:

class classy;與 class classy classy::classy():mem1(10),mem2(20){}的效果是一樣的。如果class classy; classy::classy():mem1(20){}這樣,mem1的預設初始值將會被覆蓋,但是mem2的值不能被覆蓋。

可以將複製建構函式和賦值運算子定義為私有成員函式,這樣就可以避免在主調函式中使用物件初始化另乙個物件或者將乙個物件複製給另乙個物件引起的錯誤(尤其是類中存在由new生成的成員時)。與其面對無法預料的執行故障,不如得到乙個易於跟蹤的錯誤,指出這些方法是不能訪問的。

各種排序演算法複習

1 插入排序的基本方法是 每步將乙個待排序的元素,按其排序碼大小插入到前面已經排好序的一組元素的適當位置上去,直到元素全部插入為止。2 可以選擇不同的方法在已經排好序的有序資料表中尋找插入位置,依據查詢方法的不同,有多種插入排序方法。希爾排序 shell sort 這個排序方法又稱為縮小增量排序。該...

JSP技術複習

jsp是一種執行在伺服器端的指令碼語言,是用來開發動態網頁的技術,它是j a web程式的開發重要技術 jsp頁面主要由html和jsp 構成,jsp 是通過 和 符號加入到html 中間的 練習 例 3.1 page contenttype text html import j a.util.pa...

各種介面技術比較

前言 縱觀這幾年,介面庫的發展可謂風聲水起,諷刺意味的是 大家對pc上的介面重視程度,於手機介面的發展。當蘋果出現時,徹底讓人們對介面的需求,提高了乙個台階。隨之而來的是粗糙介面的塞班介面的沒落。過去,人們不太重視軟體介面,把更多的精力放到程式功能上。現在人們越來越意識到,乙個好的介面對產品的成功有...