KLSeis

导航

 

一、一般使用

1、const是一种常用的 类型修饰符。   const TYPE ValueName = value; (TYPE const ValueName = value;二者功能一样)  表明TYPE类型的变量ValueName的值永远是value,不再改变。   TYPE可以是int double float char string等,也可以是自定义的类。

2、修饰函数形参,如 void fun( const int& iVal );  避免在函数体内意外修改了iVal的值。实参是否为const无所谓。(void fun( const int iVal ); 不是好的编程习惯)

二、指针

1、char cname = 'd';    char* const chpt = &cname;  char型指针chpt永远指向cname的地址,不能再指向别的地方,但是chpt指向的内存中的内容可以通过(*chpt)的方式来改变[1]。必须初始化。   ([1]必须满足。假如把char cname = 'd';改成const char cname = 'd';编译器会报错,因为违背了[1]条款)

2、const char* chpt; ( char const * chpt;二者功能相同 )  char型指针chpt可以随便指向,但是chpt指向的内存中的内容不可以通过(*chpt)来改变[2]。 可以不初始化。条款[2]说明如下

char ch1 = 's';  const char ch2 = 'w';  const char* chpt;  chpt = &ch2;  chpt = &ch1;   ch1 = 'g';  都正确。 但是*chpt = 't';是错误的。

3、const char ch = 'd'; (或者char ch = 'd';)  const char* const chpt = &ch;  char型指针chpt永远指向ch的地址,不能再指向别的地方,并且chpt指向的内存中的内容不可以通过(*chpt)来改变。必须初始化。

三、const 成员变量

class Student{ const double ChengJi; };

在类中声明时与普通成员变量相同,但是必须在构造函数中初始化(此知识点见下一篇博文)。此时不可以使用默认构造函数,因为默认构造函数没有对const成员变量初始化,会出现编译错误“没有合适的默认构造函数可用”。

四、

 

 

posted on 2014-02-24 22:28  KLSeis  阅读(200)  评论(0编辑  收藏  举报