初始化清單與建構子賦值:內部差異
初始化類別成員時,可以選擇使用成員初始值設定項清單或指派值在建構函數體內。在內部,這些方法有細微的差別。
成員初始值設定項列表
使用成員初始值設定項列表,如本例所示:
MyClass::MyClass(): _capacity(15), _data(NULL), _len(0) { }
在進入建構函式體之前直接初始化成員變數。這對於以下情況特別有用:
建構子分配
另一方面,在建構子體內賦值,如下例所示:
MyClass::MyClass() { _capacity=15; _data=NULL; _len=0 }
在構造函數體內賦值,如下例所示:
在構造函數體內賦值,如下例所示:
在構造函數體內賦值,如下例所示:
在構造函數中賦值函數執行期間執行初始化。這種方法通常用於非常量成員和可以根據建構函數的參數初始化的成員。 產生程式碼的比較通常,兩種方法都會產生類似的結果程式碼。但是,對於常數成員或引用,只有成員初始值設定項清單可以初始化它們,因為建構子賦值會導致編譯錯誤。以上是成員初始化列表與建構函數分配:什麼時候應該使用哪一個?的詳細內容。更多資訊請關注PHP中文網其他相關文章!