C++ 對象的初始化和賦值

——設置對象的值既能夠經過初始化,也能夠採用賦值的方式函數

利用構造函數建立臨時對象進行賦值:

Stock stock;    // 聲明一個Stock對象
...
stock = Stock("Boffo Objects", 2, 2.0);    // 對stock從新賦值(或能夠理解爲初始化)

  調用構造函數來建立一個臨時對象,而後將該臨時對象複製到stock中,並丟棄它(即便用了臨時對象後編譯器選擇時間刪除臨時對象,併爲臨時對象調用析構函數)spa

使用已有對象給對象賦值:

stock2 = stock1;    // object assignment

  在默認狀況下,將一個對象賦值給同類型的另外一個對象時,C++將源對象的每個數據成員的內容複製到目標對象中相應的數據成員中對象

若是既能夠經過初始化,也能夠經過賦值來設置對象的值,則應採用初始化方式。一般這種方式的效率更高。blog

C++11列表初始化:

在C++11中,可將列表初始化語法用於類。只要提供與某個構造參數的參數列表匹配的內容,並用大括號將它們括起:ip

Stock hot_tip = {"Derivatives Plus Plus", 100, 45.0};  // 與使用參數列表直接初始化數據成員不一樣,這裏做爲函數參數使用
Stock jock {"Sport Age Storage, Inc"};
Stock temp {};
相關文章
相關標籤/搜索