可赋值
|
|
类别: 公用程序 |
组件类型: 概念 |
描述
如果可以复制该类型的对象并将值赋给变量,则该类型是可赋值的。细化
相关类型
符号
定义
有效表达式
名称 |
表达式 |
类型要求 |
返回类型 |
复制构造函数 |
X(x)
|
|
X
|
复制构造函数 |
X x(y);
X x = y;
|
|
|
赋值 |
x = y [1]
|
|
X&
|
交换 |
swap(x,y)
|
|
void
|
表达式语义
名称 |
表达式 |
前提条件 |
语义 |
后置条件 |
复制构造函数 |
X(x)
|
|
|
X(x)是…的副本x [2]
|
复制构造函数 |
X(x)
|
|
|
X(x)是…的副本x [2]
|
复制构造函数 |
X x(y);
X x = y;
|
|
|
x是…的副本y [2]
|
赋值 |
x = y [1]
|
|
|
x是…的副本y [2]
|
交换 |
swap(x,y)
|
|
等同于{
X tmp = x;
x = y;
y = tmp;
}
|
|
复杂度保证
不变式
模型
备注
[1] 此要求的一个含义是,const类型不可赋值。例如,const int不可赋值:如果x声明为类型const int,则x = 7是非法的。类似地,类型pair<const int, int>不可赋值。
[2] 这里之所以说“x是…的副本y”,而不是“x == y”,是因为operator==不一定定义:相等不是可赋值的要求。如果类型X是EqualityComparable 以及可赋值的,则x的副本应该与x.
进行比较。
另请参见
DefaultConstructible
版权所有 © 1999 Silicon Graphics, Inc. 保留所有权利。