导语
之前我们提到了const修饰符,说到const修饰符可以代替define,实现对常量的更安全的定义,这次我们来讲讲如果在类里面定义常对象或者常成员会出现什么。
常数据对象
**形式:**与一般数据成员定义类似,只用在前面加const关键字就好了,例如:const int x=2;
注意点:
1.在定义时一定要对x先说明初值
2.如果在类中说明了常数据成员,那么构造函数只能通过初始化列表对该数据成员进行初始化,任何其他函数都不能对该成员赋值。
例:
这里我对构造函数进行一次重构,第一个Human构造函数通过参数列表传递数据,Xcode不会报错,第二次在函数内部进行修改就不行了。之后我企图在其他函数中对gender进行修改,系统统统报错。
常成员函数
形式
类型说明符 函数名(参数表)const;
例如:
int get_gender() const{return gender;}
注意
1.如果一个对象说明为常对象,则通过该对象只能调用它的常成员函数,而不能调用普通成员函数。
2.常成员函数不能更新对象的数据成员
(也就是说,一个成员函数一旦定义成了一个常函数,它只能引用,而不能修改任何一个数据成员)