常量对象函数引用和参数传递
定义对象时在前面加上const关键字,则对象的值不会改变。
在类的成员函数说明后加const关键字,则该成员函数为常量成员函数。常量成员函数不应该修改其所作用的对象。因此,在常量成员函数中不能修改成员变量的值(静态成员变量除外),也不能调用同类的非常量成员函数(静态成员函数除外)。
常量成员函数的重载
两个成员函数,名字和参数表都一样,但是一个是const,一个不是,算重载。
常引用:不同通过常引用修改其所指对象的值。
对象作为函数的参数时,生成该参数需要调用复制构造函数,效率比较低。可以用对象的引用作为参数。
参数传递:形参的初始化和变量的初始化一样:如果形参具有非引用类型,则复制实参的值;如果为引用类型,则它只是实参的别名。
相应代码如下:
#include <iostream> using namespace std; class Ctest { private : int n; public : int m; Ctest(int a):m(a),n(1){} void Getvalue() const { cout << n << endl; } void Getvalue() { cout << 2 * n << endl; } }; int main() { const Ctest c1(2); Ctest c2(5); c1.Getvalue(); c2.Getvalue(); return 0; }
参考链接:
https://www.coursera.org/learn/cpp-chengxu-sheji
本人博客已迁往 https://chenlongxiabc.github.io 欢迎访问。
博客内容均为自己编写,其中参考了相关内容。若有侵权他人请联系我,并对此表示歉意。若要转载或是其他用途,请联系我。我的邮箱diegefulan@hotmail.com