const用法总结
2005-03-20 16:14
295 查看
const----常量标志符,用来定义常量变量,能产生#define NUM 5 一样的作用,但是更高级的作用体现在对程序的安全性的加强,以及对编译的优化上。总结一下const的用法。
1、const int NUM = 5; 有些变量赋初值后不希望被更改,可以采用const来标志,当程序企图改变这些变量时,编译时会有错误提示。
2、void Compute( const & T ); 引用参数传递的用法可以用来避免复制一些大类型的参数,节省内存,但是赋予了的调用函数更改权限,当参数不希望被更改时,可以才采用这种调用方式。既节省了空间,又保障了安全性。
3、和指针组合使用产生的四种用法:a非常量数据的非常量指针;b非常量数据的常量指针;c常量数据的非常量指针;d常量数据的常量指针。这些其实都是对权限的限制,出于安全性方面的考虑。用法都顾名思义,我解释一下常量指针。所谓常量指针就是说指针数据的内容是固定的,即地址是固定的。至于地址所代表的变量的内容无所谓。
4、类中一些用法;可以定义const对象,即该对象不能被更改,跟第一点相同。const成员函数 void Compute( int ) const;:该函数不改变对象的属性----值。而且const对象不能调用非const成员函数,即使该函数没有改变对象的值也不可以,会产生编译错误。这些都是出于安全性方面的考虑。不过当成员函数不改变对象的值的时候,推荐把函数定义为const类型,这样当程序企图改变对象时,编译会提示出错。而且用const定义寒暑,可以优化编译,提高性能。书上写的,原因我也不清楚:)估计涉及到编译原理方面的知识,并且和编译器的具体设计有关。
目前所了解得就这么多^_^
1、const int NUM = 5; 有些变量赋初值后不希望被更改,可以采用const来标志,当程序企图改变这些变量时,编译时会有错误提示。
2、void Compute( const & T ); 引用参数传递的用法可以用来避免复制一些大类型的参数,节省内存,但是赋予了的调用函数更改权限,当参数不希望被更改时,可以才采用这种调用方式。既节省了空间,又保障了安全性。
3、和指针组合使用产生的四种用法:a非常量数据的非常量指针;b非常量数据的常量指针;c常量数据的非常量指针;d常量数据的常量指针。这些其实都是对权限的限制,出于安全性方面的考虑。用法都顾名思义,我解释一下常量指针。所谓常量指针就是说指针数据的内容是固定的,即地址是固定的。至于地址所代表的变量的内容无所谓。
4、类中一些用法;可以定义const对象,即该对象不能被更改,跟第一点相同。const成员函数 void Compute( int ) const;:该函数不改变对象的属性----值。而且const对象不能调用非const成员函数,即使该函数没有改变对象的值也不可以,会产生编译错误。这些都是出于安全性方面的考虑。不过当成员函数不改变对象的值的时候,推荐把函数定义为const类型,这样当程序企图改变对象时,编译会提示出错。而且用const定义寒暑,可以优化编译,提高性能。书上写的,原因我也不清楚:)估计涉及到编译原理方面的知识,并且和编译器的具体设计有关。
目前所了解得就这么多^_^