常对象
2016-03-24 21:05
148 查看
源代码:
运行结果:
![](http://img.blog.csdn.net/20160324220309513?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
总结:
1.常对象指的是数据不能被改变的对象;
2.常对象只能调用该对象的常成员函数,而不能调用该对象的普通成员函数(这里要出去系统自动调用的构造函数和析构函数),即对于常对象而已,只能访问对象中的常量(这里表示的是常变量和常成员函数)
3.常成员函数指的是该函数只能调用该对象中的数据,而不能够改变该对象中的数据;常成员函数在声明和定义都要加上const,而在引用的时候可以不加;
4.常数据成员构造函数的格式只能是如此源代码所示(即构造函数只能用参数初始化表对常数据成员进行初始化)假如换成:Information2::Information2(int h) {number2=h;}
是编译不了的;
5.有一种特殊处理数据的方式,就是在数据前面声明mutable,这样数据就可以被改变了;
6.常成员函数不能调用另外一个非常成员函数。
<span style="font-size:14px;">#include<iostream> using namespace std; class Information { public: Information(int n); void Information_cout()const; void Information_modify()const; private: mutable double number; } ; Information::Information(int n) { number=n; } void Information::Information_cout()const { cout<<number<<endl<<endl; } void Information::Information_modify()const { number=3000; } class Information2 { public: Information2(int h); void Information2_cout(); private: const double number2; }; Information2::Information2(int h):number2(h){}//Information2::Information2(int h) {number2=h;} void Information2::Information2_cout() { cout<<number2<<endl<<endl; } int main() { const Information p1(1000); p1.Information_cout(); Information2 p2(2000); p2.Information2_cout(); const Information p3(10000); cout<<"比较结果:"<<endl; p3.Information_cout(); p3.Information_modify(); p3.Information_cout(); return 0; }</span>
运行结果:
总结:
1.常对象指的是数据不能被改变的对象;
2.常对象只能调用该对象的常成员函数,而不能调用该对象的普通成员函数(这里要出去系统自动调用的构造函数和析构函数),即对于常对象而已,只能访问对象中的常量(这里表示的是常变量和常成员函数)
3.常成员函数指的是该函数只能调用该对象中的数据,而不能够改变该对象中的数据;常成员函数在声明和定义都要加上const,而在引用的时候可以不加;
4.常数据成员构造函数的格式只能是如此源代码所示(即构造函数只能用参数初始化表对常数据成员进行初始化)假如换成:Information2::Information2(int h) {number2=h;}
是编译不了的;
5.有一种特殊处理数据的方式,就是在数据前面声明mutable,这样数据就可以被改变了;
6.常成员函数不能调用另外一个非常成员函数。
相关文章推荐
- TCP之RST发送场景
- 1.8-Redis数据结构
- HDU1011 Starship Troopers(树形dp)
- PHP之PDO
- Ajax基础
- 第三周项目三(2)-输出空心三角
- substance的使用示例(转)
- Hibernate 事务管理
- Python~函数的参数
- Web Scraping with Python
- 深入css中的margin
- 第四次作业
- 补上题代码 hdu1520
- [android] 隐式意图和显式意图的使用场景
- mybatis开始第1天
- 数据结构课设 银行排队问题之单队列多窗口服务
- 无法安装framework
- 大数据量下高并发同步的讲解(不看,保证你后悔)(转)
- jQuery学习笔记(5)-事件与事件对象
- yii2-搜索带分页,分页的两种方式