常数据成员

引言:类存在的目的之一就是为了实现封装性,但是实际上经常使用公有函数接口去修改其数据成员,为了保证类中可以有一些数据成员绝对不会被修改,所以创造了常数据成员

特点:
1.在定义时要在头部加const关键字
2.初始化操作只能在构造函数的初始化列表中进行
3.无论是普通成员函数还是常成员函数都无法修改其值

常成员函数

引言:为了实现这样一种函数:对于其调用的数据成员只能读取,而不能修改。所以创造了常成员函数

特点:
1.在声明和定义时都要在尾部加const关键字
2.其只能读取数据成员,而不能修改

是否可以修改 一般成员函数 常成员函数
一般数据成员
常数据成员

3。常对象只能调用常成员函数

#include<iostream>
using namespace std;
class Point
{int x,y;
public:
Point(int a,int b):x(a),y(b){}
fun(){return x+y}
fun()const{return x-y}
}void main
{const Point p1(1,1);
Point p2(1,1);
cout<<p1.fun<<endl;
cout<<p2.fun<<endl;}

注:上面的例子一方面说明了常对象只能调用常成员函数
另一方面说明了const可以用于区分重载函数

4.常成员函数只能调用常成员函数,防止误改数据成员

常数据成员和常成员函数相关推荐

  1. 常对象、常数据成员、常成员函数

    C++有不少措施保护数据的安全性,如private保护类的数据成员等. 但对于一些共用的数据,如函数实参与形参等,我们可以在不同的场合通过不同的途径访问同一个数据对象.有时不经意的误操作会改变数据的值 ...

  2. 【C++】 常对象、常数据成员、常成员函数总结

    常数据成员  ◆ 常数据成员必须进行初始化,并且不能被更新.  ◆ 常数据成员不能在声明时赋初始值(普通数据成员也是),常数据成员必须在构造函数初始化列表进行初始化:普通数据成员在初始化列表和函数体中 ...

  3. 常对象成员和常成员函数

    -----------------siwuxie095 常对象成员 和 常成员函数 看如下实例: 定义一个坐标类:Coordinate 要想正确的初始化,必须通过初始化列表来初始化,因为两个数据成员 ...

  4. C++ 常数据成员、常成员函数和常对象

    首先给出一个例子简单理解const修饰数据变量的基本工作原理: #include <stdio.h>int main() {const int a = 250;int *ptr = (in ...

  5. 常数据成员、常成员函数

    定义常数据成员: 类型 const 对象名:或者 const 类型 对象名: 例如:const clock c1(9,9,9)或者: clock const c2(10,10,10): 常对象的几条特 ...

  6. 常数据成员、常成员函数、常对象

    常数据成员 常数据成员的初始化只能在类构造函数的初始化表中 MINO::MINO(const char *name, int age, string birth, int height, int we ...

  7. 常对象、常数据成员、常成员函数总结

    # include <iostream> using namespace std;class Time {public:Time(int h = 10, int m = 30, int s ...

  8. C++常数据成员,常成员函数及常对象的使用

    一.常数据成员不可修改,声明方式:const [类型][标识符] 二.常成员函数可以和同名的非常成员函数发生重载,且声明和定义时都要带上const,调用时不需要,声明方式:[类型][函数名](参数列表 ...

  9. const常对象成员与常成员函数

    #include <iostream> #include <string> using namespace std; class pt{ public: pt(int a,in ...

最新文章

  1. 堆栈中的EIP EBP ESP
  2. boost::gil::scale_lanczos用法的测试程序
  3. ie9 background 不显示
  4. 联想高性能服务器,Lenovo|EMC推出高性能4x4TB服务器级NAS
  5. oracle resize什么意思,Oracle调整表空间大小resize
  6. 十分钟上线 - 函数计算构建支付宝小程序的后端
  7. 我好像明白了如何画序列图了
  8. python产生随机数列表_python如何产生10个不同的随机数
  9. 多元线性模型分类变量方差_第三十一讲 R多元线性回归中的多重共线性和方差膨胀因子...
  10. Gink掉过的坑(一):将CCTableView导入到lua中
  11. 苹果mac误删文件怎样快速找回?
  12. mongodb mysql 事务_让你的mongodb支持事务---升级到mongodb 4.0
  13. Oracle grant connect, resource to user语句中的权限
  14. eclipse git 上传工程 提交项目到 github
  15. linux rtl8111/8168网卡驱动下载,Debian Linux 编译 Realtek (RTL8111/RTL8168) 网卡驱动
  16. 天猫商城应用自定义类代码
  17. Unity快速搭建城市场景
  18. smartPrinter安装报错
  19. token什么意思中文在C语言中,token什么意思(token里面包含什么信息)
  20. python智力问答测试_智力问答:经典的智力测试题

热门文章

  1. linux 显示行号
  2. g('begin');php,ThinkPHP快捷方法使用总结
  3. 白杨 袁鹰 五年级下册课文
  4. 第2章第23节:文字对齐:借助分布功能实现倾斜对齐 [PowerPoint精美幻灯片实战教程]
  5. 机器学习中标称型数据和数值型数据的区别
  6. 冷冻饺子行业的三国杀:龙凤vs湾仔码头vs三全
  7. 哈希表哪家强?编程语言找你来帮忙!
  8. Photoshop学习(二十六):颜色模式
  9. python学习教程16-数据分组,取前三的值
  10. SEM搜索引擎营销 (SEM经理)