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 ...
随机推荐
- Postman接口测试应用
接口测试可以通过工具(postman/jmeter).自动化测试(python+requests+开源框架)两种方式进行测试 接口测试可以在单元测试之后开始进行,不用关注前端页面有没有形成,也可以渗透 ...
- FastJson漏洞复现
FastJson漏洞复现 环境:vulhub/fastjson Fastjson是阿里巴巴公司开源的一个高性能的Java库,专门用于处理JSON数据格式. 它不仅能够将Java对象序列化为JSON格式 ...
- Java垃圾回收器总结
什么是Java垃圾回收器 Java垃圾回收器是Java虚拟机(JVM)的三个重要模块(另外两个是解释器和多线程机制)之一,为应用程序提供内存的自动分配(Memory Allocation).自动回收( ...
- 水位波纹动画兼容ie8
效果观看请到下方: 链接:https://pan.baidu.com/s/1AWHz0BHTmj_7Vx6qhSmuaA 提取码:ih9p 复制这段内容后打开百度网盘手机App,操作更方便哦 下面介绍 ...
- nginx之日志切割
方便查看nginx日志, 平常会将nginx日志进行每日切割处理. 这里介绍 平常比较常用的两种方式 1. logrotate 在linux上logrotate是一个日志文件管理工具.用于分割日志文件 ...
- Redis集群搭建-Docker
使用docker搭建本地集群Redis服务(参考:https://www.cnblogs.com/slowbirdoflsh/p/11633113.html) 环境配置 # 拉取redis镜像 doc ...
- 一个新的音乐管理软件--JxAudio
介绍 JxAudio是一个基于.net core的音频管理系统,支持音乐的播放.上传.下载.删除等功能. 兼容Subsonic协议,可以使用Subsonic客户端进行访问. 支持Windows.Lin ...
- Blazor 组件库 BootstrapBlazor 中Row组件介绍
组件介绍 在Bootstrap中,我们经常使用row和col通过栅格化来控制显示位置. 如 <div class="row"> <div class=" ...
- 理解Java FutureTask
FutureTask实现的功能 它的功能就像他继承的接口一样:Runnable与Future.他实现了一套机制将两者连接起来. Runnable主要方法是run(),用于执行一些程序. Future主 ...
- 在CodeBolcks+wxWidgets+wxSmith下的C++编程教程——用向导创建一个wxWidgets项目(sTetris)
0.前言 我想通过编写一个完整的游戏程序方式引导读者体验程序设计的全过程.我将采用多种方式编写具有相同效果的应用程序,并通过不同方式形成的代码和实现方法的对比来理解程序开发更深层的知识. 了解我编写教 ...