C中const在类中的使用方法

你好呀,我是阿德。

上一篇介绍了const的常见用法(C++中const关键字的使用方法),这次专门讲解在C++中的类使用const的几种情况。

01const成员变量

将成员变量使用const进行修饰,表示该成员变量需要被成员函数共享,但是不能被修改。

classA{constinta;};

常成员变量可以在定义时初始化,如果没有初始化,那么必须通过初始化列表进行初始化,不能在函数中用等号进行赋值。

classA{constinta;public:A(inti):a(i){}//a=i};02const成员函数

在一个类中,任何不会修改成员变量的函数都应该声明为const类型。使用const关键字进行说明的成员函数,称为常成员函数。

classA{constinta;public:A(inti):a(i){}//a=ivoidprint()const;};voidA::print()const{//常成员函数,这里也要加constprintf("helloconst\n");}

如果在编写const成员函数时,不慎修改成员变量,或者调用了其它非const成员函数,编译器将指出错误,因为非const成员函数有可能会修改成员变量。

03const对象声明一个类的对象时加上const,表示得到一个常对象,该对象的成员变量都不能被修改。

常对象只能调用const成员函数,因为调用非const成员函数有可能会修改成员变量。非const对象则可以访问任意的成员函数,包括const成员函数。

如果两个函数的名字和参数列表相同,区别只是是否加const,它们不是函数重载,这个一定要记清楚。

classA{constinta;public:A(inti):a(i){}//a=ivoidprint()const;voidprint();};voidA::print()const{//常成员函数,这里也要加constprintf("helloconst\n");}voidA::print(){printf("hello\n");}intmain(){intn;constintr=n;Aa1(1);constAa2(2);a1.print();a2.print();return0;}//输出//hello//helloconst从结果可以发现,const对象默认调用const成员函数。非const对象默认调用非const成员函数。

END我是,我是阿德,一名多年经验的软件开发工程师,高校大厂程序员。此


转载请注明:http://www.aierlanlan.com/cyrz/70.html

  • 上一篇文章:
  •   
  • 下一篇文章: 没有了