Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
考虑以下陈述:-
Class A a = b;//Where is b is existing object of class A.
A类同时具有复制构造函数和赋值运算符重载(实现)。那么在这种情况下,将调用上述语句,复制构造函数或赋值运算符或两者?
这称为复制初始化。
复制初始化定义为:
T t2 = t1;
根据类型的t1两种情况是可能的:
t1
如果t1不是类型 T:
T
t2
如果t1是类型 T:
请注意,虽然复制构造函数调用可能会通过复制省略被省略。
这里不涉及任务。仅当您将已构造的对象分配给另一个时,才会发生分配。您的代码语句在一个语句中涉及构造和赋值,因此本身没有赋值。
在这种情况下,复制构造函数被调用。因为“A 类”类对象“a”是复制已构建的“A 类”对象 b 的值而构建的。
不可能调用作用于两个已创建对象的赋值运算符。