慕运维8079593
首先是const的用处,它可以用来修饰一个变量或者类的成员函数, 修饰变量时表示变量是不可修改的,修饰类的成员函数时,表示调用这个函数,不会修改类的内部成员指针和 const 指针的功能区别: const指针表示指针指向的对象是不可修改的, 而普通指针可以,另外,普通的指针可以当做const指针的来用,如下:假设现在有两个指针 Tdate *p1, const Tdata *p2第一个函数定义为 someFunc(T *) , 那么 someFunc(p1)是可以的,someFunc(p2)是不行的,因为const指针不能转换成非const指针第二个函数定义为someFunc(const T *) 那么someFunc(p1)和someFunc(p2)都是可以的,p1可以当做const T *来用someFunc2的解释假设现有对象 Tdata t;someFunc2(Tdata re),形参是一个对象,由于c/c++是传值调用,所以每次调用这个someFunc2(t)时,都会构造一个新的Tdata形参re,并把t的内容复制到re中去,这样是一种效率的浪费,解决办法就是改成指针someFunc2(Tdata *re) 或者引用 someFunc2(Tdata &re)不使用普通引用而是是用const引用的好处在于:const引用使用要求比较低, 如前面所述, 普通引用和const引用都可以调用这个函数const明确告诉使用者,该函数不会修改re的内容,也就是t的内容,而使用非const引用会误导使用者以为该函数要修改t的内容