请考虑以下声明: -
Class A a = b;//Where is b is existing object of class A.
Run Code Online (Sandbox Code Playgroud)
A类有复制构造函数和赋值运算符重载(实现).在这种情况下,将调用上述语句,复制构造函数或赋值运算符或两者?
这称为复制初始化.
复制初始化定义为:
T t2 = t1;
Run Code Online (Sandbox Code Playgroud)
根据类型的t1两种情形是可能的:
如果
t1不是类型T:
t1为类型 Tt2通过调用复制构造函数将创建的对象复制到.如果
t1是这种类型T:
t1来复制到t2.请注意,复制构造函数调用可能会通过复制省略来省略.
这里没有涉及任务.仅在将已构造的对象分配给另一个对象时才会进行分配.您的代码语句在一个语句中涉及构造和值赋值,因此本身没有赋值.
| 归档时间: |
|
| 查看次数: |
102 次 |
| 最近记录: |