我有一个基础的C++问题,我应该知道答案。
假设我们有一个类A
,并且有一个构造函数A(int a)
。以下两种方式有什么不同:
A test_obj(4);
并且
A test_obj = A(4);
?
我通常使用后一种语法,但在查阅我的可靠的C ++入门指南时,我意识到他们通常使用前者。这两者之间的区别通常在内置类型(例如,int a(6)
与int a = 6
)的上下文中讨论,我的理解是,在这种情况下它们是等效的。然而,在用户定义类的情况下,定义对象的这两种方法是否等效?还是后一种选项首先默认构造
test_obj
,然后使用A
的复制构造函数将A(4)
的返回值分配给test_obj
?如果是第二种可能性,我想对于大型类,这两种方法之间可能存在某些性能差异。我相信这个问题在互联网上的某个地方已经得到了回答,甚至在这里也有,但我无法有效地搜索到它,而不是找到问第一个选项和使用
new
之间的区别的问题,这是无关的。
main
。 - PaulMcKenzie