游戏开发C++ const使用详解

 http://www.job168.com/info/read_79075.html

发表日期:2010-11-24    
    一 const基础

  如果const关键字不涉及到指针,我们很好理解,下面是涉及到指针的情况:

  int b = 500;

  const int* a = &b; [1]

  int const *a = &b; [2]

  int* const a = &b; [3]

  const int* const a = &b; [4]

  如果你能区分出上述四种情况,那么,恭喜你,你已经迈出了可喜的一步。不知道,也没关系,我们可以参考《Effective c++》Item21上的做法,

  如果const位于星号的左侧,则const就是用来修饰指针所指向的变量,即指针指向为常量;

  如果const位于星号的右侧,const就是修饰指针本身,即指针本身是常量。

  因此,[1]和[2]的情况相同,都是指针所指向的内容为常量(const放在变量声明符的位置无关),这种情况下不允许对内容进行更改操作,如不能*a = 3 ;

  [3]为指针本身是常量,而指针所指向的内容不是常量,这种情况下不能对指针本身进行更改操作,如a++是错误的;

  [4]为指针本身和指向的内容均为常量。

  

    二 作为参数

  void display(const double& r);或者void display(const double* r);

  说明:

  1 在引用或者指针参数的时候使用const限制是有意义的,而对于值传递的参数使用const则没有意义

  2 保证引用的变量的值不被改变

  3 const在double前或者后面意思相同,只是不同的人的写法不同

  

    三 const对象

  声明为const的对象只能访问类中声明为const的成员函数,不能调用其它成员函数.

  

    四 const成员函数

  类型说明符 函数名(参数表)const; void print(int i) const;

  说明:

  1 const是函数类型的一个组成部分,因此在实现部分也要带const关键字.

  2 常成员函数不能更新对象的数据成员,也不能调用该类中没有用const修饰的成员函数.

  

    五 使用const的一些建议

  1 要大胆的使用const,这将给你带来无尽的益处,但前提是你必须搞清楚原委;

  2 要避免最一般的赋值操作错误,如将const变量赋值,具体可见思考题;

  3 在参数中使用const应该使用引用或指针,而不是一般的对象实例,原因同上;

  4 const在成员函数中的三种用法(参数、返回值、函数)要很好的使用;

  5 不要轻易的将函数的返回值类型定为const;

  6除了重载操作符外一般不要将返回值类型定为对某个对象的const引用;


 

阅读更多
文章标签: c++ 游戏 2010 c
个人分类: C++学习心得
想对作者说点什么? 我来说一句

Visual C++游戏开发经典案例详解.pdf

2012年03月01日 75.56MB 下载

Visual C++ 游戏开发经典案例详解

2014年01月12日 42.11MB 下载

C++const详解

2011年12月15日 29KB 下载

const 用法详解

2011年12月13日 11KB 下载

Visual C++游戏

2017年11月05日 76.09MB 下载

没有更多推荐了,返回首页

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭