⭐其中上次的博客已经详细的讲解了构造函数&&析构函数的使用方法与拷贝构造函数和赋值运算符重载,所以本次博客将继续深度的讲解const成员函数问题⭐ 二、const成员函数 🍎const修饰类的成员函数 【概念】:将const修饰的“成员函数”称之为const成员函数,const修饰类成员函数,实际修饰该成员函数隐含的this指针,表明在...
这样就叫做常量成员函数(const member function),我们可以使用非常量对象调用常量成员函数,这样做是合法的,因为我们可以使用指向常量的指针来绑定一个非常量对象,例如,下述语句合法: doublepi =3.14;constdouble* ptr = π 关于const成员函数的补充 对于一个成员函数来说,它有一个隐藏的参数,来表示对象的地址,例如: ...
#include<iostream>#include<algorithm>#include<vector>usingnamespacestd;classApple{public:intb=8;Apple(intbb):b(bb){};Apple&getAppleRef(){// non-const版本cout<<"call the non-const one"<<endl;return*this;}constApple&getAppleRef()const{// const版本cout<<"call the const one"<<endl;retur...
1.1 什么是const 成员函数 cosnt 的成员函数其实就是在我们函数的括号外多加一个constvoid Dlsplay() const ●其他的作用是修饰隐含的 this指针,使其不能修改。 1.2 const成员函数的注意事项 const 成员可以直接修饰this指针那么使用起来有什么要注意的嘛?
const List myList; myList.DeleteNode(3); //错误,DeleteLength是非const成员函数 1. 2. 3. 显然调用DeleteNode这个成员函数删除一个链表结点后,很有可能改变对象中length(链表长度)这个值,这不符合const对象的规定。但是,如果不允许const对象调用任何成员函数又是非常不合理的。于是,我们把那些肯定不会修改对象...
用mutable修饰的数据成员,即使在const对象或在const成员函数中都可以被修改 Mutable:可变的,与const是相对的,const是恒定的常量 eg:19cpp\19cpp\19cpp\01.cpp #include <iostream> using namespace std; class Test { public: Test(int x) : x_(x), outputTimes_(0) ...
const修饰类的成员函数 const修饰变量一般有两种方式:const T *a,或者 T const *a,这两者都是一样的,主要看const位于*的左边还是右边,这里不再赘述,主要来看一下当const修饰类的成员函数时,成员函数有什么特点。 https://www.cnblogs.com/cthon/p/9166715.html ...
我们定义的类的成员函数中,常常有一些成员函数不改变类的数据成员,也就是说,这些函数是”只读”函数,而有一些函数要修改类数据成员的值。如果把不改变数据成员的函数都加上const关键字进行标识,显然,可提高程序的可读性。 一、成员函数定义后面加const的意思 ...
成员函数voidfunc(){}intm_value;};voidSample::GetValue()const// 常量成员函数{value=0;// 出错func();// 出错}intmain(){constSampleobj;obj.value=100;// 出错,常量对象不可以被修改obj.func();// 出错,常量对象上面不能执行 非 常量成员函数obj.GetValue// OK,常量对象上可以执行常量成员函数...