C++之常对象,常成员对象,常成员函数,常指针

一:常对象:Time const t1(12,23,23);

其中所有的值不能被修改。通过该对象只能调用它的常成员函数,而不能调用它的普通成员函数。以防普通成员函数会修改数据成员的值。但如果一定要修改常对象数据成员的值,可以将该数据成员声明为mutable,如:

mutable int count;//把count声明为可变的数据成员,这样就可以用生命为const的成员函数改变它的值。

二:常数据成员:

只能通过其构造函数的参数初始化列表对常数据成员进行初始化。

三:常成员函数:

只能引用本类中的成员,而不能修改它们的值。一般格式为:void get_time() const;

在声明和定义时必须要有const关键字,在调用时可以不加const关键字。

四:指向对象的常指针:

Time *const p1=&t1;

五:指向常对象的指针变量:

const Time * p=&t1;

这两个的用法与常量指针和指针常量的用法是类似的。

注意:如果一个对象已被声明为常对象,只能用指向常对象的指针变量指向它,而不能用指向非const型对象的指针变量指向它。

           当希望在调用函数时对象的值不被修改,就应该把形参定义为指向常对象的指针变量,同时用对象的地址做实参。

当直接用对象名作为形参和实参时,在函数中修改形参的值,但不会改变实参的值。

在C++面向对象设计中,经常用常指针和常引用做函数参数,可以保证数据安全并能节省空间。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值