文章目录

  • const修饰类的成员函数--常成员函数
  • 常引用
  • 常成员函数和普通成员函数的访问特性比较

const修饰类的成员函数–常成员函数

将const修饰的类成员函数称之为const成员函数,const修饰类成员函数,实际修饰该成员函数隐含的this指针,作用是在该成员函数中不能对类的任何成员进行修改。

格式: 类型说明符 函数名(参数表)const;
例如:void showDate()const;

说明:
1、常成员函数可以访问常数据成员,也可以访问普通数据成员。常数据成员可以被常成员函数访问,也可以被普通成员函数访问。
2、如果将有一个对象说明为常对象,则通过通过该对象只能调用它的常成员函数,而不能调用普通成员函数。常成员函数是常对象唯一的对外接口。
3、常成员函数不能更新对象的数据成员,也不能调换该类中的普通成员函数,保证了在常成员函数中绝对不会更新数据成员的值。

常引用

格式: const 类型 & 引用名;
例如: int a=1; const int &b=a;
其中b是一个常引用,他所引用的对象不允许更改。如果出现 b=12; 则是非法的
在实际应用中,常引用往往用来作为函数的形参,这样的参数成为常参数。

常成员函数和普通成员函数的访问特性比较

数据成员 普通成员函数 常成员函数
普通数据成员 可以访问,也可以改变值 可以访问,但不可以改变值
常数据成员 可以访问,但不可以改变值 可以访问,但不可以改变值
常对象 不可以访问,也不可以改变值 可以访问,但不可以改变值

【C++基础知识】常成员函数,常引用相关推荐

  1. C++常成员函数 常对象成员

    什么是常对象成员,什么是常成员函数? 首先先看一段代码: class A { private:const int a; // 常对象成员,只能在初始化列表赋值public:// 构造函数A() { } ...

  2. C++中常对象与常成员函数以及this与成员函数的联系与区别

    class A { }; /* 小记:对于const声明的对象,针对哪个变哪个不变得问题,实际上就是const后的整体不变 e.g.: const int *A; 或 int const *A; / ...

  3. C++57个入门知识点_40 常成员函数(用于定义不可修改类内部成员变量的函数,一般用来修饰Get函数;常成员函数this指针:const T* const;常成员函数内部变量修改方法:强转/关键字)

    前面我们已经学习了C++中重要的知识点,特别是虚函数可能会有些懵逼,但是需要我们在实践中不断的理解和尝试,写代码是进步最快的方式,接下来将会介绍一些简单但很重要的知识点,本篇介绍常成员函数. 总结: ...

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

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

  5. C++常对象,常变量,常成员函数详解(含添加内容)

    既要使数据能在一定范围内共享,又要保证它不被任意修改,可使用const. ·        用const修饰的声明数据成员称为常数据成员 ·        用const修饰的声明成员函数称为常成员函数 ...

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

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

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

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

  8. C++之常引用对象只能调用常成员函数、重载为成员函数和友元函数的区别

    近日写了一道题,遇到了新bug,使博主对C++的逻辑严密性有了更深的体会,特写此博客.本文标题是对两个bug的总结,即本文内容分为两部分. 题目如下: 设计一个CShape抽象类,类中包含纯虚函数   ...

  9. C++学习(六) 常引用、常对象、常对象成员、常成员函数

    文章目录 1.常引用 1.1.作用 1.2.说明 二.常对象 2.1.作用 2.2.注意 2.3.说明 三.常对象成员 3.1.作用 3.2.说明 四.常成员函数 4.1.说明 4.2.注意 1.常引 ...

最新文章

  1. gin context和官方context_gin 源码阅读(二) 路由和路由组
  2. C#和javascript的简单交互
  3. 【数据结构与算法】链式队列的Java实现
  4. 统计带头结点的单向链表的个数并存放在形参n所指的单元中。 欢迎评论 指点。
  5. web developer tips (29):在web应用项目里启用“编辑并继续”功能
  6. Atitit. 解决unterminated string literal 缺失引号
  7. 药物临床试验数据递交FDA的规定
  8. python课后练习(高琪400集第一季.第五章)
  9. java.sql.SQLException: Access denied for user ‘crm‘@‘localhost‘ (using password: YES)
  10. 一句话生成图片,FlagAI使用(附页面操作代码) | 机器学习
  11. 基于HL7的HIE平台
  12. 四川省国际科技合作基地(国合基地)申报条件程序
  13. 东北师范大学计算机学院的导师李俊,东北师范大学计算机科学与信息技术学院研究生导师简介-胡丽红...
  14. AM335x 如何修改phy及双网络使用说明(精华!!!)
  15. 使用 MAUI 在 Windows 和 Linux 上绘制 PPT 的图表
  16. SQLException: The server time zone value ‘EDT‘ is unrecognized or represents more than one time zone
  17. 图形学数学基础之重要性采样(Importance Sampling)
  18. bga焊盘怎么做_BGA焊盘的设计
  19. 给TextView 加上圆角和边框
  20. 2年vue项目实战经验汇总

热门文章

  1. SSO(单点登录)技术漫谈
  2. 知识经济时代的基石:知识协同
  3. 美术向技美入门课——庄懂的技术美术入门课(美术向)01
  4. 各种光流算法介绍和原理
  5. 关于整合ssh的问题,新人求关照
  6. vue 安装(看图就够了,皮卡皮卡)
  7. 如何使用阿里云创建镜像和实例
  8. 快到假期了,还抢不到票?可以试试这两个工具
  9. 图 邻接矩阵幂的含义 离散数学定理14.11
  10. Windows搭建Nginx直播推流服务器