7.1.5.1 cv限定符
来源:互联网 发布:js设置div字体颜色 编辑:程序博客网 时间:2024/05/16 07:13
7.1.5 .1 cv限定符
1、共有两个cv限定符:const和volatile。如果cv限定符出现在decl-specifier-seq中,声明的init-declarator-list部分不能为空。[注:
2、在名字空间作用域中声明的const限定类型对象具有外部链接属性,除非对象是通过extern声明的,或者对象先前已被声明为外部链接。通过整型常量表达式初始化的非volatile但const限定的整型变量或枚举类型可当作整型常量表达式使用(5.19)。[注:如8.5所述, const限定类型的对象或子对象的定义必须包含初始化体,或者此定义可被缺省初始化。]
3、虽然指向cv限定类型的指针或引用并不要求所指对象确实是cv限定的,但却被当作确实如此;const限定的访问路径不能用于对对象进行修改,即使该对象并不是const对象,因而可通过其它访问路径进行修改。[注:cv限定符受类型系统的支持,在不进行转型(
4、除被声明为mutable(
5、例如:
const int ci = 3; // cv-qualified (initialized as required)
ci = 4; // ill-formed: attempt to modify const
int i = 2; // not cv-qualified
const int* cip; // pointer to const int
cip = &i; // OK: cv-qualified access path to unqualified
*cip = 4; // ill-formed: attempt to modify through ptr to const
int* ip;
ip = const_cast<int*>(cip); // cast needed to convert const int* to int*
*ip = 4; // defined: *ip points to i, a non-const object
const int* ciq = new const int (3); // initialized as required
int* iq = const_cast<int*>(ciq); // cast required
*iq = 4; // undefined: modifies a const object
6、另一个例子:
class X {
public:
mutable int i;
int j;
};
class Y {
public:
X x;
Y();
};
const Y y;
y.x.i++; //well-formed: mutable member can be modified
y.x.j++; //ill-formed: const-qualified member modified
Y* p = const_cast<Y*>(&y); // cast away const-ness of y
p->x.i = 99; // well-formed: mutable member can be modified
p->x.j = 99; // undefined: modifies a const member
7、如果试图通过非volatile限定类型的左值引用volatile限定类型的对象,程序的行为是未定义的。
- 7.1.5.1 cv限定符
- 10.CV限定符
- 存储说明符或cv-限定符
- C++说明符和CV限定符
- C++ const相关问题 CV限定问题
- C/C++:CV限定的理解
- 限定符
- 限定符
- C++编程常见错误—cannot have cv-qualifier//不能有CV限定,在C++中CV指const和volatile—1、非成员函数不能有CV限定,2、静态成员函数不能有CV限定
- C++编程常见错误—cannot have cv-qualifier//不能有CV限定
- CV
- cv
- CV
- CV
- CV
- const限定修饰符
- 正则表达式限定符
- 限定符const
- VC常用数据类型使用转换详解
- 设计模式系列之单件
- TCP/IP协议详解卷1学习笔记系列二
- 7.1.5 类型说明符
- 圖像及編程常用網址,作為收藏(Very Good)
- 7.1.5.1 cv限定符
- TCP/IP协议详解卷1学习笔记系列3-IP路由
- DOM属性用法速查手册
- 7.1.5.2 简单类型说明符
- java第一帖
- 看动画片日语必学50句
- 7.1.5.3 详细类型说明符
- TCP/IP协议详解卷1学习笔记_UDP协议
- TCP/IP协议详解卷1学习笔记_多播和广播