码迷,mamicode.com
首页 > 其他好文 > 详细

const用法

时间:2018-05-22 00:51:09      阅读:162      评论:0      收藏:0      [点我收藏+]

标签:不可   区分   符号   构造函数   复制   har   一个   基础   传递   

基础用法:
  修饰常量
  void function(const int Var)保证形参在函数中不变
未知用法:
  void function(const Class& Var);

    //引用参数在函数内不可以改变
    //*不加引用符号则传递的是复制
    //*使用加const的引用既保证了传递的对象不是复制(是本身),也保证了传递对象不会被改变
  void function()const;

     //常成员函数, 它不改变对象的成员变量. 也不能调用类中任何非const成员函数。
    //*const成员函数应该在函数原型说明和函数定义中都增加const限定:
    //**但构造函数和析构函数对这个规则例外,它们从不定义为常量成员,但可被常量对象调用(被自动调用)。它们也能给常量的数据成员赋值,除非数据成员本身是常量。

 

一句话总结以下const和指针:const的下一个整体是什么,什么就是常量

1)、const在前面   
const int nValue; //nValue是const   
const char *pContent; //*pContent是const, pContent可变   
const (char *) pContent;//pContent是const,*pContent可变   
char* const pContent; //pContent是const,*pContent可变   
const char* const pContent; //pContent和*pContent都是const
2)、const在后面,与上面的声明对等   
int const nValue; // nValue是const   
char const * pContent;// *pContent是const, pContent可变   
(char *) const pContent;//pContent是const,*pContent可变   
char* const pContent;// pContent是const,*pContent可变   
char const* const pContent;// pContent和*pContent都是const

总结:
①区分 const int* a和const (int*)a
int const * a和int* const a
②void function(const Class& Var);优势(既传递引用又保证引用不被改变)
③void function()const相当说明该函数不改变对象的值

const用法

标签:不可   区分   符号   构造函数   复制   har   一个   基础   传递   

原文地址:https://www.cnblogs.com/mgfsos/p/9070025.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!