const的用法和注意事项

const的用法和注意事项:

①:被const修饰的变量可以阻止这个变量被改变,被const修饰的变量要进行初始化。

②:可以指定const指针也可以将指针指向的变量指定为const;

③:被const关键字修饰的形参的值在函数内部不能被改变;

④:const修饰的成员函数不能修改任何的成员变量(mutable修饰的变量除外);const成员函数不能调用非const成员函数,因为非const成员函数可能会修改成员变量。

⑤:const可以修饰函数返回值,使之不能被改变。

 define和const的区别

①:const定义的常数是变量,也带类型,#define定义的只是个常数,不带类型。

②:define在预处理阶段进行替换;const在编译时确定其值;

③:define只进行简单的字符串替换,没有类型检查;而const由对应的数据类型,编译时会进行类型检查。

④:define定义的变量在预处理后存放在代码段的空间里,const修饰的变量占用数据段空间。

⑤:宏定义的作用范围仅限于当前文件,const对象使用extern声明后可以在多个文件之间共享。

 

const成员函数和非const成员函数的区别

①:const和非const函数是可以构成重载的,但是仅凭返回值是否为const是无法构成重载的。

②:若将成员函数声明为const,则该函数不允许修改类的数据成员。值得注意的是,把一个成员函数声明为const可以保证这个成员函数不修改数据成员,但是,如果据成员是指针,则const成员函数并不能保证不修改指针指向的对象,编译器不会把这种修改检测为错误。

③:const成员函数可以被具有相同参数列表的非const成员函数重载。

④:const成员函数可以访问非const对象的非const数据成员、const数据成员,也可以访问const对象内的所有数据成员,但不能修改任何变量;非const成员函数可以访问非const对象的数据成员、const数据成员,但不可以访问const对象的任意数据成员。

⑤:const成员函数只能用于非静态成员函数,不能用于静态成员函数。

 

C++  const和static类中使用要注意的

①:static数据成员的初始化必须在类外初始化;const数据成员必须在构造函数初始化列表中进行初始化,因为类成员不能声明初始化,同时const成员不能在成员函数中赋值,因为const不能被改变。

②:const成员函数不能改变任何一个数据成员的值,但是可以改变static成员的值。

 

 

 

 

 

 

 

 

  • 0
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值