簡體   English   中英

C++ 實例化類比較

[英]C++ instantiate class comparison

class Myclass { 
public: 
    int value;
    Myclass(int a):value(a) {} 
}; 

假設我在上面聲明並定義了一個類。 我正在嘗試實例化一個Myclass實例。 以下哪種方式最有效?
(“更高效”是指代碼將執行得更快。)

Myclass c1(123);
Myclass c2=123;
Myclass c3{(123)};
Myclass c4{123}; // Is this called using "initialization list"?

我可能是錯的:

Myclass c1(123)是直接初始化,應該是最快的。

Myclass c1{123}在你的情況下也是直接初始化(不是列表初始化),它應該和第一個一樣快。 此外,該語法在 c++11 之前不可用。

Myclass c1 = 123是一個副本初始化。 它會首先創建一個臨時的Myclass對象,然后將其復制到c1 ,因此它會比直接初始化慢。 但是,許多現代編譯器應該能夠對其進行優化。

不確定Myclass c1{(123)} ,但我相信它相當於Myclass c1{123}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM