我有一個基本的C++問題,我真的應該知道答案。在C++中創建類對象
假設我們有一些類A
與構造函數A(int a)
。是什麼區別:
A test_obj(4);
和
A test_obj = A(4);
?
我通常使用後一種語法,但在查找一些與我的可信C++入門無關的東西后,我意識到它們通常使用前者。這兩者之間的差異通常在內置類型的背景下討論(例如int a(6)
vs int a = 6
),我的理解是在這種情況下它們是等價的。
但是,在用戶定義類的情況下,是兩種定義對象等價的方法嗎?或者後者選項首先默認構造test_obj
,然後使用A
的複製構造函數將返回值A(4)
指定爲test_obj
?如果這是第二種可能性,我想這兩種方法在大型課堂上可能會有一些性能差異。
我確定這個問題是在互聯網上的某個地方回答的,即使在這裏,但我不能有效地搜索它,而沒有發現問題,詢問第一個選項和使用new
之間的差異,這是不相關的。
*我通常使用後一種語法* - 爲什麼?您將很難找到有經驗的C++程序員有意使用該語法。 – PaulMcKenzie
@PaulMcKenzie沒有特別好的理由,我只是做。我願意改變。我從來沒有真正想過。 –
@PaulMcKenzie回到原來的問題,有什麼區別? – jacknad