const 用法详解
1. 类的成员函数声明为const类型,在类外定义的时候,也需要添加const
2. 如果常成员函数修改了成员变量,会在编译的时候检查出来错误!
其实关于const用错的报错都是在编译阶段出现的!(大胆推测)
3. 类的对象定义为const类型之后,就只允许调用const修饰过的(常成员)函数,否则编译的时候报错;
即使有些成员函数不修改任何成员变量,没有const修饰,也无法被const类型的对象调用!
综上,const类型对象调用成员函数其实需要检查两步:
① 是否有const修饰
② 是否修改了成员变量
4. 2和3说的常成员函数不能修改成员变量,但是有一个例外:假如成员变量被mutable修饰,就可以在常成员函数中修改!
5. 普通成员函数可以调用常成员函数,常成员函数只能调用常成员函数!
const 用法详解的更多相关文章
- const用法详解(转)
http://www.cnblogs.com/StudyRush/archive/2010/10/06/1844690.html 面向对象是C++的重要特性. 但是c++在c的基础上新增加的几点优化也 ...
- C++中const用法详解
本文主要内容来自CSDN论坛: http://bbs.csdn.net/topics/310007610 我做了下面几点补充. 补充: 1. 用const声明全局变量时, 该变量仅在本文件内可见, 类 ...
- 十一、微信小程序-var、let、const用法详解
let命令 基本用法 ES6 新增了let命令,用来声明变量.它的用法类似于var,但是所声明的变量,只在let命令所在的代码块内有效. { let a = 10; var b = 1; } a // ...
- [C/C++] const用法详解
const在C语言中算是一个比较新的描述符,我们称之为常量修饰符,意即其所修饰的对象为常量(immutable). 我们来分情况看语法上它该如何被使用. 1.函数体内修饰局部变量.例:void fun ...
- C++初学者 const使用详解
关于C++中的const关键字的用法非常灵活,而使用const将大大改善程序的健壮性,参考了康建东兄的const使用详解一文,对其中进行了一些补充,写下了本文. 1. const常量 如: cons ...
- C语言 sscanf用法详解
/* sscanf用法详解 */ #include <stdio.h> /* sscanf头文件 */ #include <stdlib.h> #include <str ...
- Delphi TStringHelper用法详解
Delphi TStringHelper用法详解 (2013-08-27 22:45:42) 转载▼ 标签: delphi_xe5 it 分类: Delphi Delphi XE4的TStringHe ...
- C语言对文件的操作函数用法详解2
fopen(打开文件) 相关函数 open,fclose 表头文件 #include<stdio.h> 定义函数 FILE * fopen(const char * path,const ...
- C语言对文件的操作函数用法详解1
在ANSIC中,对文件的操作分为两种方式,即: 流式文件操作 I/O文件操作 一.流式文件操作 这种方式的文件操作有一个重要的结构FILE,FILE在stdio.h中定义如下: typedef str ...
- C# static的用法详解
C# static的用法详解 有的东西你天天在用,但未必就代表你真正了解它,正如我之前所了解的 static . 一.静态类 静态类与非静态类的重要区别在于静态类不能实例化,也就是说,不能使用 n ...
随机推荐
- CommonsCollections4(基于ysoserial)
环境准备 JDK1.8(8u421)这里ysoserial没有提及JDK版本的影响,我以本地的JDK8版本为准.commons-collections4(4.0 以ysoserial给的版本为准).j ...
- apt安装后需要移除的问题
之前记录了 apt-get remove 的命令,现在了解到原来还有 apt-get purge 的命令 这个命令可以清除配置数据 看来我们要转变一下,将来尽量用这个purge 了不然又使用清除 au ...
- MySQL原理简介—2.InnoDB架构原理和执行流程
大纲 1.更新语句在MySQL中是如何执行的 2.重要的内存结构-Buffer Pool缓冲池 3.undo日志文件如何让更新的数据可以回滚 4.更新Buffer Pool缓冲池中的缓存数据 5.Re ...
- 使用 Antlr 处理文本
高 尚 (gaoshang1999@163.com), 软件工程师, 中国农业银行软件开发中心 简介: Antlr 是一个基于 Java 开发的功能强大的语言识别工具,其主要功能原本是用于识别编程语言 ...
- MapStruct 入门
介绍(What?Why?How?) What? MapStruct is a code generator that greatly simplifies the implementation of ...
- javascript 实现参数重载
1.概要 在java中,同一个函数签名,比如 getUser,我们可以根据参数的不同,调用不同功能的方法.这也就是参数重载,如何在javascript也实现参数重载呢? 2.实现方法 function ...
- 使用 wireshark 捕获 请求包
1.出错场景 今天遇到一个问题,在用户登录时,发现用户在登录的时候,一个用户登录正常,一个用户登录报错,报错的原因时400错误,分析对比发现一个用户的分配用户组多,一个分配的少,其中多的那个出错了. ...
- Javascript Dom元素信息
1.Dom元素的大小 属性 说明 调用者 offsetWidth,offsetHeight 返回元素的宽高(border+padding) ,整数 当前Dom元素 clientWidth,client ...
- 自定义资源支持:K8s Device Plugin 从原理到实现
本文主要分析 k8s 中的 device-plugin 机制工作原理,并通过实现一个简单的 device-plugin 来加深理解. 1. 背景 默认情况下,k8s 中的 Pod 只能申请 CPU 和 ...
- IOS实现水波纹
IOS实现水波纹 需要实现一个水波纹效果 其实就是画两个正弦函数或者余弦函数的layer在view上面,根据屏幕刷新率来重绘,更新其左右偏移量来让其看起来是在左右移动 具体实现 定义两个layer,用 ...