考虑以下声明和初始化类型变量的方法C
:
C c1;
C c2;
c2 = C();
C c3(C());
C c4 = C();
所有这些是否完全等同,或者其中一些可以根据确切的定义而有所不同C
? (假设它有公共默认值和复制构造函数)。
这些意味着:
C c1; // default constructor
C c2; // default constructor
c2 = C(); // default constructor followed by assignment
C c3(C()); // default constructor possibly followed by copy constructor
C c4 = C(); // default constructor possibly followed by copy constructor
请注意,编译器可以省略复制构造函数调用。它们相等吗? - 好吧,这取决于复制构造函数和赋值运算符的作用。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)