【C++基础知识】常成员函数,常引用
文章目录
- 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++基础知识】常成员函数,常引用相关推荐
- C++常成员函数 常对象成员
什么是常对象成员,什么是常成员函数? 首先先看一段代码: class A { private:const int a; // 常对象成员,只能在初始化列表赋值public:// 构造函数A() { } ...
- C++中常对象与常成员函数以及this与成员函数的联系与区别
class A { }; /* 小记:对于const声明的对象,针对哪个变哪个不变得问题,实际上就是const后的整体不变 e.g.: const int *A; 或 int const *A; / ...
- C++57个入门知识点_40 常成员函数(用于定义不可修改类内部成员变量的函数,一般用来修饰Get函数;常成员函数this指针:const T* const;常成员函数内部变量修改方法:强转/关键字)
前面我们已经学习了C++中重要的知识点,特别是虚函数可能会有些懵逼,但是需要我们在实践中不断的理解和尝试,写代码是进步最快的方式,接下来将会介绍一些简单但很重要的知识点,本篇介绍常成员函数. 总结: ...
- 常对象、常数据成员、常成员函数总结
# include <iostream> using namespace std;class Time {public:Time(int h = 10, int m = 30, int s ...
- C++常对象,常变量,常成员函数详解(含添加内容)
既要使数据能在一定范围内共享,又要保证它不被任意修改,可使用const. · 用const修饰的声明数据成员称为常数据成员 · 用const修饰的声明成员函数称为常成员函数 ...
- 常数据成员、常成员函数、常对象
常数据成员 常数据成员的初始化只能在类构造函数的初始化表中 MINO::MINO(const char *name, int age, string birth, int height, int we ...
- 【C++】 常对象、常数据成员、常成员函数总结
常数据成员 ◆ 常数据成员必须进行初始化,并且不能被更新. ◆ 常数据成员不能在声明时赋初始值(普通数据成员也是),常数据成员必须在构造函数初始化列表进行初始化:普通数据成员在初始化列表和函数体中 ...
- C++之常引用对象只能调用常成员函数、重载为成员函数和友元函数的区别
近日写了一道题,遇到了新bug,使博主对C++的逻辑严密性有了更深的体会,特写此博客.本文标题是对两个bug的总结,即本文内容分为两部分. 题目如下: 设计一个CShape抽象类,类中包含纯虚函数 ...
- C++学习(六) 常引用、常对象、常对象成员、常成员函数
文章目录 1.常引用 1.1.作用 1.2.说明 二.常对象 2.1.作用 2.2.注意 2.3.说明 三.常对象成员 3.1.作用 3.2.说明 四.常成员函数 4.1.说明 4.2.注意 1.常引 ...
最新文章
- gin context和官方context_gin 源码阅读(二) 路由和路由组
- C#和javascript的简单交互
- 【数据结构与算法】链式队列的Java实现
- 统计带头结点的单向链表的个数并存放在形参n所指的单元中。 欢迎评论 指点。
- web developer tips (29):在web应用项目里启用“编辑并继续”功能
- Atitit. 解决unterminated string literal 缺失引号
- 药物临床试验数据递交FDA的规定
- python课后练习(高琪400集第一季.第五章)
- java.sql.SQLException: Access denied for user ‘crm‘@‘localhost‘ (using password: YES)
- 一句话生成图片,FlagAI使用(附页面操作代码) | 机器学习
- 基于HL7的HIE平台
- 四川省国际科技合作基地(国合基地)申报条件程序
- 东北师范大学计算机学院的导师李俊,东北师范大学计算机科学与信息技术学院研究生导师简介-胡丽红...
- AM335x 如何修改phy及双网络使用说明(精华!!!)
- 使用 MAUI 在 Windows 和 Linux 上绘制 PPT 的图表
- SQLException: The server time zone value ‘EDT‘ is unrecognized or represents more than one time zone
- 图形学数学基础之重要性采样(Importance Sampling)
- bga焊盘怎么做_BGA焊盘的设计
- 给TextView 加上圆角和边框
- 2年vue项目实战经验汇总