C++程序设计(第2版--9.6)---共用数据的保护(与const的结合使用)
来源:互联网 发布:ntfs for mac 10.9.1 编辑:程序博客网 时间:2024/05/22 02:23
2013年10月7日15:14:07
1. 常对象
定义常对象的一般格式为: 类名 const 对象名[(实参表)] (或者const 类名 对象名[(实参表)] )
例如:Time const t1(23, 59, 59);//定义t1是常对象
说明:(1. 常对象的数据成员都是常数据成员;但成员函数不都是常成员函数。
(2. 常对象只能调用常成员函数。
(3. 如果非要修改常对象中的某个数据成员的值,则需要将数据成员声明为mutable,例如mutable int count;
2. 常对象成员:常数据成员和常成员函数
常数据成员
例如在类体中定义常数据成员hour:const int hour;
说明:只能通过构造函数的参数初始化表对常数据成员进行初始化,任何其他函数都不能对其赋值。
例如:Time::Time(int h):hour(h){}
常成员函数
定义一般格式:类型名 函数名(参数表) const
即在常规定义函数的后面加上const即可。
常成员函数,它只能引用本类中的数据成员(可以引用const数据成员,也可以引用非const数据成员),而不能修改它们。比如输出数据等。
3. 指向对象的常指针
格式:类名 * const 指针变量名;
功能:指针的指向不能改变,但可以通过指针修改它指向的内容。
例如:Time t1(10, 15, 15);
Time * const p;
p = &t1;
4. 指向常对象的指针变量
格式:const 类名 * 指针变量名;
功能:可以修改指针变量的指向,但不能通过指针变量来修改它所指向的内容。
另外:一般的
(1. 若一个变量被声明为常变量,则只能用指向常变量的指针指向它,不能用一般的指针指向它。
const char c[] = "boy";const char *p1;p1 = c;//OKchar *p2 = c;//ERROR
(2. 指向常变量的指针,可以指向常变量,也可以指向非const的变量;而非const的指针变量,只能指向非const的变量,不能指向常变量。
const char ch[] = "furture";char ch2[] = "world";const char *p1;char *p2;p1 = ch;//OKp1 = ch2;//OKp2 = ch;//ERRORp2 = ch2;//OK
5. 对象的常引用
如果不希望在函数中修改实参t的值(函数调用实例fun(t);),可以把fun的函数的形参t声明为const类型,即void fun(const Time &t);。
常指针和常引用作为函数参数的好处:这样既能保证数据安全,使数据不被随意修改,而且在调用函数时又不必建立实参的拷贝。
- C++程序设计(第2版--9.6)---共用数据的保护(与const的结合使用)
- C++程序设计(第2版--9.9)---静态数据成员(与static的结合使用)
- 共用数据保护(const 常量)
- 共用数据保护(const类型)
- 共用数据的保护
- C++共用数据的保护
- C++----共用数据保护
- c/c++面向对象编程之共用数据的保护
- C++ 数据的保护(const)
- 第九讲:共用数据的保护与对象的动态处理
- 第九讲:共用数据的保护与对象的动态处理
- C++:数据的共享与保护
- C语言中关于const与指针结合的理解
- 使用常对象——为共用数据加装一个名为const的玻璃罩
- 使用常对象——为共用数据加装一个名为const的玻璃罩
- 共享数据的保护 利用const
- const 数据共享与保护
- 使用JDBCTemplate实现与Spring结合,方法公用 ——共用实现类(BaseImpl)
- Linux内核中CPU主频和电压调整 (一)
- Cisco设备光模块解密方法
- 微软面试案例分析,绝!
- WCF 学习笔记之绑定(Binding)
- SQL Server 2008 R2 安装过程中出错的一种解决方法
- C++程序设计(第2版--9.6)---共用数据的保护(与const的结合使用)
- POJ 2482 线段树 扫描线
- 来去匆匆的你别忘记在互联网世界里留下你的印记
- 搞笑的10T微云
- 哈希表
- Social Psychology -exam
- xml学习笔记1--XML语法
- VC++程序常见错误 提示(3)---gyy整理
- ETL----源业务系统数据库跟踪报告