——設置對象的值既可以通過初始化,也可以采用賦值的方式
利用構造函數創建臨時對象進行賦值:
Stock stock; // 聲明一個Stock對象 ... stock = Stock("Boffo Objects", 2, 2.0); // 對stock重新賦值(或可以理解為初始化)
調用構造函數來創建一個臨時對象,然后將該臨時對象復制到stock中,並丟棄它(即使用了臨時對象后編譯器選擇時間刪除臨時對象,並為臨時對象調用析構函數)
使用已有對象給對象賦值:
stock2 = stock1; // object assignment
在默認情況下,將一個對象賦值給同類型的另一個對象時,C++將源對象的每一個數據成員的內容復制到目標對象中相應的數據成員中
如果既可以通過初始化,也可以通過賦值來設置對象的值,則應采用初始化方式。通常這種方式的效率更高。
C++11列表初始化:
在C++11中,可將列表初始化語法用於類。只要提供與某個構造參數的參數列表匹配的內容,並用大括號將它們括起:
Stock hot_tip = {"Derivatives Plus Plus", 100, 45.0}; // 與使用參數列表直接初始化數據成員不同,這里作為函數參數使用 Stock jock {"Sport Age Storage, Inc"}; Stock temp {};