c++中的const成员函数
来源:互联网 发布:win7怎么打开2404端口 编辑:程序博客网 时间:2024/05/21 18:40
const成员函数就是在正常的成员函数后面加上了const,这样的目的就是告诉编译器在这个函数中不能修改类中的成员变量,这是通过改变隐含的this形参的类型,使之指向一个只读的对象来完成的。
当然,要注意的是,是在本函数内部无法修改类中的成员变量,不是针对整个类或者其他函数的。
#include<iostream>
#include<string>
using namespace std;
class f{
private :
string s;
public:
f(string s)
{
this->s=s;
}
void xiugai(string ss)
{
this->s=ss;
}
void noxiugai() const
{
cout<<this->s;
}
};
int main()
{
string s="hello";
f f(s);
f.noxiugai();
string ss="world";
f.xiugai(ss);
f.noxiugai();
return 0;
}
这个函数的运行结果就是:
helloworld,从这个结果可以看出,这个对象是通过xiugai()函数将这个成员变量修改了。但是如果你在这个const函数中修改的话,会报错。
2.还有一点就是定义一个const的对象会不会也能达到这个不能修改成员变量的效果呐,其实,不是的,因为这样的对象只能调用const成员函数,其他的函数是无法调用的,即使在这个函数中没有修改成员变量,在调用时也会报错。
3.const成员函数在类外声明时也需要写上const:
如下:
#include<string>
using namespace std;
class f{
private :
string s;
public:
f(string s)
{
this->s=s;
}
void xiugai(string ss)
{
this->s=ss;
}
void noxiugai() const;
void f::noxiugai() const
{
cout<<this->s;
}
int main()
{
string s="hello";
const f f(s);
f.noxiugai();
string ss="world";
f.xiugai(ss);
f.noxiugai();
return 0;
}
这个类于上面的类一样。
以上只是我本人的理解,如果理解有误,请各位不吝赐教!
- c++const成员函数
- C++中的const成员函数
- c++中的const 成员函数
- c++ 中的const 成员函数
- C++中的const成员函数
- 类中的const成员函数
- C++中的const成员函数
- c++中的const成员函数
- const在类成员函数中的作用
- C++中的const成员函数介绍
- const 在类成员函数中的使用说明
- 高质量c++(const成员函数)
- 高质量c++(const成员函数)
- 高质量c++(const成员函数)
- 高质量c++(const成员函数)
- 第二遍C++primer->const成员函数
- c++const成员函数与mutable关键词
- 【C/C++】类中的const成员 static成员
- luoguP1551 亲戚 题解
- MySQL日志
- 开通微博
- maven 添加activeti包就报错
- php二维数组去重即去掉重复键值的子元素
- c++中的const成员函数
- Idea 2017.2.4 破解 可用方法,请看到最后一行
- (运输层)TCP可靠传输原理之停止等待协议(ARQ)/连续ARQ协议
- A Cubic number and A Cubic Number
- EventBus源码详解(一):基本使用
- JAVA基础梳理1:java运行环境、命令行编译执行、path和classpath作用
- ArrayAdapter+ListView+string-array
- Android IPC机制及Binder原理
- 这是文章标题