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指针,决定了在该成员函数中, 任意修改它所在的类的成员的操作都是 ...
随机推荐
- Oracle使用imp/exop远程导入导出dmp数据
在导入导出数据之前,习惯性的检查一下,看看我们自己的机器可不可以连接远程的Oracle主机,检测方法是tnsping SERVICE_NAME.我的机器如下: C:\Users\zx>tnspi ...
- jQuery渐变弹出层
css: [css]#race{display:block;width:200px;height:50px;line-height:50px;text-align:center;background: ...
- Flink Program Guide (3) -- Event Time (DataStream API编程指导 -- For Java)
Event Time 本文翻译自DataStream API Docs v1.2的Event Time ------------------------------------------------ ...
- iOS7中group类型tableview的section间距设置
1.如果是首行,检查是否设置了headerView. 2.其他设置tableView . sectionFooterHeight = 1.0. 这个距离的计算是header的高度加上footer的 ...
- block,inline,inline-block
block元素的特点是: 总是在新行上开始: 高度,行高以及顶和底边距都可控制: 宽度缺省是它的容器的100%,除非设定一个宽度 <div>, <p>, <h1>, ...
- 异步方式向WPF ListBox控件中一条一条添加记录
向ListBox绑定数据源时,如果数据量过大,可能会使得程序卡死,这是就需要一条一条的向ListBox的数据源中添加记录了,下面是个小Demo: 1.前台代码,就是一个ListBox控件 <Wi ...
- node.js安装和启动
在Windows上安装 Node.js十分方便,我们只需要访问node.js官网http://www.nodejs.org/,点击Download链接,然后选择Windows Installer(32 ...
- hibernate的3种状态
hibernate的三种状态是瞬态.持久态.脱管态 瞬态:新new来的对象称为瞬态. 持久态:处于该状态的对象在数据库中有一条对应的记录,并拥有一个持久标识. 脱管态:当与某持久对象的session关 ...
- Python学习笔记5-字符串、bool、数值操作和数组字典排序
1.字符串 # 字符串数字之间转换 # x = int("6") # print type(x) #<type 'str'> # y = str(6) # print ...
- DEV控件之ChartControl用法
一.总体概述 这个控件包含3层,最外面的chartControl层.中间的XYDiagram层.最里面的Series层.功能非常强大,但同时使用起来也相对复杂,需要各个层之间相互协调设置才能达到自己想 ...