const 用在函数后
类的成员函数后面加 const,表明这个函数不会对这个类对象的数据成员(准确地说是非静态数据成员)作任何改变。C++支持常量性不同的重载,例如下面的GetData函数。
#include "Test.h" Test::Test(void)
{
data=;
} Test::~Test(void)
{
}
const int Test::GetData() const
{
int y=;
//return y++; 这个可以,因为y不是成员变量
//return data++;编译不通过,data是成员变量,不可以在函数内改变
return data;
}
int Test::GetData()
{
return ++data;//成员函数后面没有const,可以修改成员变量的值。
}
const 对象调用const 成员函数,no const调用 no const成员函数。
int main(int arg,char * agrs)
{
const Test* test=new Test(); Test* testno=new Test();
int data=test->GetData();
std::cout<<"const"<<data<<endl;
std::cout<<"no const"<<testno->GetData()<<endl; getchar();
return ; }
结果是:
aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAAG0AAAA0CAIAAAAPGyE+AAABsUlEQVR4nO2XbXKDIBCGvW5v1Ws0H4Y0vUCi+TiD4B36o1NnlYDLdlVs3mfeH8ggrk9gIsXHuRnkHaRTPPX4BhIJeixAEvCoAzzqAI86rMij6bN0OX2W9cjXMXCXncoFPSa5oINzXJIRj6FN9LQ/suk440eldGMy3dohj/7vr9v2L+NQj6n3zgHHI0XRl8DjYFUy752DGTyGOmUeBffOQQ77miOFucYXQ/d/xm9H5im8VRbH9El80YlZ0Xd41sCjDvCoAzzqAI86wKMO8KjDy3pU/gLdnBualXpMlaL/Jf8PPCZJmepEtLk0NIPzNf9cKCg9cr4Uj08qiTOSS9yj/9RQm1PxFG1mGZGqdJjTY6j/j77gUTK/35mFx+2loVn1vubbmcKjpRn12F2mFh1aRyEpSc/l12M8OK8wTsijzuyvw7ayNPAoZFfZLvAoh3rcwaMYeNRhX1kaeBSyry0NPAqBRx3K2tLAo5CydjTwKORwdYerK38Dj0J+PHaBRyHm6mjgUYi5ORp4FGJu7kgCj0KO8KjC572lgUch8KjD6d7SwKOQ06OlgUchX4+WBh5lfAPZvtlwi+RFFgAAAABJRU5ErkJggg==" alt="" />
const 用在函数后的更多相关文章
- (转)Const,Const函数,Const变量,函数后面的Const
本文转自http://www.cnblogs.com/Fancyboy2004/archive/2008/12/23/1360810.html 看到const 关键字,C++程序员首先想到的可能是co ...
- const 放在函数后
const 放在函数后表示这个函数是常成员函数, 常成员函数是不能改变成员变量值的函数.const 限定符,它把一个对象转换成一个常量.举例:为了使成员函数的意义更加清楚,我们可在不改变对象的成员函数 ...
- [Reprint]C++函数前和函数后加const修饰符区别
c++中关于const的用法有很多,const既可以修饰变量,也可以函数,不同的环境下,是有不同的含义.今天来讲讲const加在函数前和函数后面的区别.比如: 01 #include<iostr ...
- C++函数前和函数后加const修饰符区别
class Test(){ public: Test(){} const int foo(int a); const int foo(int a) const; }; 一.概念 当const在函数名前 ...
- cpp 常量函数(函数后加const)
const用在成员函数后 主要是针对类的const 对象 如: class Text{ public: void printconst(void)const{cout<<" ...
- C++ 成员函数前和函数后加const修饰符区别
博客转载自: https://www.iteblog.com/archives/214.html 分析以下一段程序,阐述成员函数后缀const 和 成员函数前const 的作用 #include< ...
- 【VS开发】【C++开发】const在函数前与函数后的区别
const在函数前与函数后的区别 一 const基础 如果const关键字不涉及到指针,我们很好理解,下面是涉及到指针的情况: int b = ...
- const放在函数前和放在函数后
template < class T, class container = vector<T> > class MyClass{ private: T value; publi ...
- C++ 函数后加const
1.非静态成员函数后面加const(加到非成员函数或静态成员后面会产生编译错误)2.表示成员函数隐含传入的this指针为const指针,决定了在该成员函数中, 任意修改它所在的类的成员的操作都是 ...
随机推荐
- 解决IP地址被占用问题
问题背景: 在公司一直有同事在抱怨IP地址总是被占用的问题,我决定用技术解决这个问题 解决方案: 1 最开始想在防火墙里面做IP和mac地址绑定,做了几个之后,还是有同事在说IP被占用,后来 分析了一 ...
- BigDecimal用法详解(转)
BigDecimal用法详解 http://www.cnblogs.com/linjiqin/p/3413894.html 一.简介Java在java.math包中提供的API类BigDecim ...
- Qt5 文本编辑
[应用场景]:在编辑框中输入一段文字,用鼠标选取文字,修改工具栏上的字体.字号大小.加粗.斜体等属性,选取的文字即发生相应的变化. 一. 任何一个文本编辑器的程序都要用到QTextEdit ...
- codeforces 702E Analysis of Pathes in Functional Graph 倍增
题目链接 给一个图, 然后给出每条边的权值和一个k值. 让你求出从每个点出发, 走k次能获得的边权的和以及边权的最小值. 用倍增的思想, 求出每个点走一次能到达的点, 权值和以及最小值, 走两次..四 ...
- Oracle EBS-SQL (BOM-12):BOM清单查询
select msi.segment1 装配件编码 ,msi.description 装配件描述 ,msi. ...
- /dev/console,/dev/null,/dev/tty
UNIX和Linux中比较重要的三个设备文件是:/dev/console,/dev/tty和/dev/null. 0 : /dev/console 这个设备代表的是系统控制台,错误信息和诊断信息通常 ...
- MYSQLinsert速度过慢
MYSQLinsert速度过慢最近在用MySQL做存储,测试中发现插入数据太慢了,插入速度只有20 MY SQL insert 速度过慢最近在用MySQL做存储,测试中发现插入数据太慢了,插入速度只有 ...
- linux学习之(三)-文件操作命令
创建一个空文件: touch 文件名 例:touch tom 查看: 查看一个文件的内容命令cat 文件名 例:cat tom 注:cat命令并不能显示文件的所有信息,但屏幕显示的 行数是有 ...
- 【思路解析】discuz 帖子设置封面 setthreadcover 表pre_forum_threadimage
在Discuz 中有一项就是给帖子设置封面,很多情况下只能通过手动的方式去设置或者用提交POST请求的式去设置: 但是这都是调用DISCUZ的功能设置的: 有的时候并非万能的,也有用不到的时候:下面就 ...
- sharepoint 2013 reporting services 远程server返回错误: (500) 内部server错误。
在sharepoint 2013部署reporting services过程中,点击管理中心,server上的服务.系统配置.提示了一个错误: 远程server返回错误: (500) 内部server ...