⭐其中上次的博客已经详细的讲解了构造函数&&析构函数的使用方法与拷贝构造函数和赋值运算符重载,所以本次博客将继续深度的讲解const成员函数问题⭐ 二、const成员函数 🍎const修饰类的成员函数 【概念】:将const修饰的“成员函数”称之为const成员函数,const修饰类成员函数,实际修饰该成员函数隐含的this指针,表明在...
但是并非一个底层const(low-level const),也就是说,如果有一个const Apple a对象,此时这个顶层const的this指针就无法指向这个常量对象a了,因此,const对象是无法调用普通成员函数的。 而如果在参数列表后加const关键字,这时this指针的类型就是 const Apple *const,const指针就可以绑定常量对象了。 这同时意味着什么呢...
cosnt 的成员函数其实就是在我们函数的括号外多加一个constvoid Dlsplay() const ●其他的作用是修饰隐含的 this指针,使其不能修改。 1.2 const成员函数的注意事项 const 成员可以直接修饰this指针那么使用起来有什么要注意的嘛? ●下面我们看一下这些代码来思考一下 C++ 复制代码 99 1 2 3 4 5 6 7 ...
假设现在有一个类class People则this的类型是:People *const const成员函数 上面提到,this指针是一个非常量版本的常量指针,那么当我们创建常量对象的时候,不能把this绑定到一个常量对象上——即不能使用一个常量对象调用普通函数。 代码: classpeople{public:people(){}people(intx) :score(x){} ...
const修饰类的成员函数 const修饰变量一般有两种方式:const T *a,或者 T const *a,这两者都是一样的,主要看const位于*的左边还是右边,这里不再赘述,主要来看一下当const修饰类的成员函数时,成员函数有什么特点。 https://www.cnblogs.com/cthon/p/9166715.html ...
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) ...
成员函数voidfunc(){}intm_value;};voidSample::GetValue()const// 常量成员函数{value=0;// 出错func();// 出错}intmain(){constSampleobj;obj.value=100;// 出错,常量对象不可以被修改obj.func();// 出错,常量对象上面不能执行 非 常量成员函数obj.GetValue// OK,常量对象上可以执行常量成员函数...
像成员函数和成员函数参数一样,类的对象也可以声明为const。声明为const的对象无法修改,因此只能调用const成员函数,因为这些函数确保不修改该对象。 可以通过在对象声明的前缀const关键字来创建const对象。任何试图更改const对象的数据成员的尝试都会导致编译时错误。