Chinaunix首页 | 论坛 | 博客
  • 博客访问: 502350
  • 博文数量: 92
  • 博客积分: 3146
  • 博客等级: 中校
  • 技术积分: 2314
  • 用 户 组: 普通用户
  • 注册时间: 2010-09-27 10:20
文章分类

全部博文(92)

文章存档

2014年(3)

2013年(17)

2012年(16)

2011年(22)

2010年(34)

分类: C/C++

2010-10-11 18:42:59

const的好处:  

   使用const的好处在于它允许指定一种语意上的约束——某种数据不能被修改——编译器具体来实施这种约束。通过const,我们可以告知编译器和其他程序员某个值要保持不变。只要是这种情况,我们就要明确地使用const ,因为这样做就可以借助编译器的帮助确保这种约束不被破坏。

 看下面几个例子估计又得头大:

const int *c;   //指针所指向的内容不能变
      int const *c;   //指针所指向的内容不能变
      int  * const c;  //指针的指向不能变
     const int  * const c; //指针的指向不能变,指针所指向的内容不能变

 

在这里教下大家下次看到这个就知道const 修饰的是什么。

const在*号的左侧,则用来修饰指针所指向的变量
       const在*号的右侧,则用来修饰指针本身

 

 有时大家在看C++程序的时候会发现const不仅仅用来修饰属性,还用来修饰函数,且出现的位置还不一样,相信大家看下面的代码估计会对这个关键字又有深刻的理解:

#include "iostream.h"

char p[]="tom";
class constant
{
public:
 const double PI; 
 const double G;
 int age;
 static const int count;
  char *pname;

 constant():PI(3.14),G(9.8),pname(p),age(3)//除了static属性外,其他所有属性都可以在这里赋值,且const属性必须在这里赋值
  {
        //G=9.8;//(X)常量,不能被修改
  pname="hhh";
 // pname[0]='l';  
 }
 int f1()const
 {
  //age++; //(x)方法后的const表示此方法不能修改属性的值

  return age;
 }
 const int &f2()
 {
  //age++; //(x)//方法前的const表示不能被返回的引用进行修改,即不可以 c.f2()=100;
  return age;
 }

 int f3(const int a)
 {
 // a++; //(x)//参数前const表示不能对参数引用进行修改
  return a;
 }
};

const int constant::count = 0;  //一个变量可以既是static,又是const 。 在类外初始化,初始化时要加const.

void main()
{
 constant c;
 cout< //c.f2()=100; //(x) 方法前的const表示不能被返回的引用进行修改
 cout< cout<}//*/

阅读(1074) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~