全国统一服务热线
400-6263721
今天我们来了解常函数和常对象的相关应用。
从常量我们知道就是一个不能被修改的量,使用前要初始化。那么常函数和常对象又是什么呢?
首先我们还是来看看实例代码
代码中大致分为三部分,首先是定义了一个类,类的成员函数全部定义在public里面并且都用const修饰,也就是都是常函数。
第二部分是一个全局函数show()用于打印参数对象的信息,并接受一个对象作为参数,此时会调用Rectangle的默认拷贝构造函数。
第三部分是主函数,先实例化一个对象,然后把这个对象作为参数交给show函数处理。 下面我们来看看运行结果:
输出了两个坐标和面积。
笔记:
常函数也就是常成员函数,表示这个函数只读取对象的数据不会(也不能)修改成员数据。一般的我们把这种只读函数都加上const来修饰,而不加const的则一般表示普通的成员函数(会修改对象的成员是数据)。
常成员函数中“常”针对的是函数隐含参数this指针所指向对象的相关数据不能修改。上一期我们在聊this指针的时候了解到,对于所有的成员函数都有一个默认的隐含参数this指针。
也就是说常函数不能是全局函数,如:上面代码第44行如果在后面加上const就会出现错误,因为全局函数没有隐含的this指针,在加上const之后也就找不到要限定的区域。
另外正因为const限定的this指针所指向的对象数据不能修改,换句话说就是可以修改非this指针所指向的数据。
比如静态成员变量static member可以被const修饰的成员函数修改,因为静态数据成员没有this指针,由所有的对象共享。
而常对象是指被const修饰的对象,常对象一经初始化就不能再修改其中的任何数据,只有常函数能够操作常对象。
尊重原创文章,转载请注明出处与链接:http://www.mxiao.cn/1337/new/225513/违者必究! 以上就是佛山童程童美少儿编程培训学校 小编为您整理C++编程进阶级—常函数、常对象的全部内容。
佛山EV3儿童智能机器人编程培训
佛山WEDO机器人儿童编程培训
佛山儿童人工智能python编程培训
佛山scrach图形化编程培训