当前位置:首页 > 编程开发

const常类型说明

webgou16年前 (2010-07-26)编程开发138
const : 不能修改 [CODE_LITE] const常类型说明 * 分类 常变量: const 类型说明符 变量名 常引用: const 类型说明符 &引用名 常对象: 类名 const 对象名 常成员函数: 类名::fun(形参) const 常数组: 类型说明符 const 数组名[大小] 常指针: const 类型说明符* 指针名 ,类型说明符* const 指针名 * 实例说明 const 类型说明符 &引用名 : #include void display(const double& r) { // r=12.0;//错的 cout< class R { public: R(int r1,int r2) {R1=r1;R2=r2;} void print(); void print() const; private: int R1,R2; }; void R::print() { cout<const<对象名> 或 const<类名><对象名> 两者无区别 * 常指针: o + int * const r=&n (r是常量指针,不允许改变,所以:r=m是错误的,*r=1是允许的。) + const int *r=&n (*r是常量,不允许改变,所以:r=m是允许的,*r=1是错误的。) * 常引用: const <类名>&<引用名> * 常成员函数:只有常成员函数才能操作常量或常对象。 <类型><函数名>(<参数表>) const * 常数据成员:只能使用成员初始化列表的方式生成构造函数来对数据成员进行初始化 ########################################################################################### 常对象和常函数的关系 const http://blog.sina.com.cn/s/blog_4ac0a0d30100cmz5.html (1) 常对象 用const修饰的对象叫对象常量,其格式如下: 〈类名〉const 〈对象名〉 或者 const 〈类名〉〈对象名〉 声明为常对象的同时必须被初始化,并从此不能改写对象的数据成员。 例:分析下列错误的地方,说明理由; #include class Point { int x, y; public: Point(int a, int b) { x=a; y=b;} Void MovePoint( int a, int b){ x+=a; y+=b;} Void print(){ cout<<"x="< int length(const Point &p1, const Point &p2) { int l; l=sqrt((p1.x -p2.x)* (p1.x -p2.x)+(p1.y-p2.y)*(p1.y-p2.y)); return l; } void main( ) { Point a(1,1),b(4,5); Cout<<"两点的距离是:"< class Point { int x, y; public: Point(int a, int b) { x=a; y=b;} Void MovePoint( int a, int b){ x+=a; y+=b;} Void print()const { cout<<"x="< <成员函数名>(<参数表>) const; 在使用常成员函数时要注意: (1) const是函数类型的一个组成部分,因此在函数实现部分也要带有const关键字。 (2) 常成员函数不更新对象的数据成员,也不能调用该类中没有用const修饰的成员函数。 (3) 常对象只能调用它的常成员函数,而不能调用其他成员函数。成员函数与对象之间的操作关系如表12-1所示。 常对象和常函数的关系 const 来源:(http://blog.sina.com.cn/s/blog_4ac0a0d30100cmz5.html) - 常对象和常函数的关系 const_天涯霜雪_新浪博客 (4) const关键字可以用于参与重载函数的区分。例如: void Print(); void Print() const; 这两个函数可以用于重载。重载的原则是:常对象调用常成员函数,一般对象调用一般成员函数。 (5)在const成员函数中: 可以修改被定义成mutable的成员变量,使用mutable关键字定义的成员变量可以被const成员函数修改! 保护类的成员变量不在成员函数中被修改,是为了保证模型的逻辑正确,通过用const关键字来避免在函数中错误的修改了类对象的状态。并且在所有使用该成员函数的地方都可以更准确的预测到使用该成员函数的带来的影响。而mutable则是为了能突破const的封锁线,让类的一些次要的或者是辅助性的成员变量随时可以被更改。没有使用const和mutable关键字当然没有错,const和mutable关键字只是给了建模工具更多的设计约束和设计灵活性,而且程序员也可以把更多的逻辑检查问题交给编译器和建模工具去做,从而减轻程序员的负担(yayv觉得这只不过是把负担移交给了设计人员~, :(,并没有降低任何工作量 )。如果开发过程有比较严格的迭代过程,使用这两个关键字应该更能体现出他们的作用。 [/CODE_LITE] 来源:http://my.oschina.net/alphajay/blog/5749

扫描二维码推送至手机访问。

版权声明:本文由知了博客发布,如需转载请注明出处。

本文链接:https://www.webgou.info/?id=193

分享给朋友:

“const常类型说明” 的相关文章

Firefox about: pages

Special pages available in firefox : about: A simple prompt without any parameter will display the Mozilla “about” information. abou…

3D动画基础

顶点动画...…

Android Java包各种功能概览

熟悉Android操作系统的朋友都知道,开发Android应用程序基本上使用的都是Java语言。那么要想灵活的应用这一系统,就应当熟悉其中的Android Java包的各种功能。一般的JAVA应用中,如果需用引用基础类库,通常需要使用如下的方式:import javax.swing.*;&…

android编译全过程

android编译全过程…

详解Android组件的使用

Android开发平台是开放的平台,而位于四层框架顶端的应用开发,必然涉及到Android组件。本文将为大家详细介绍Android组件。组件(Component),在谈及所谓架构和重用的时候,是一个重要的事情。很多时候都会说基于组件的软件架构,指的是期望把程序做乐高似的,有一堆接口标准封装完整的组件…

发表评论

访客

看不清,换一张

◎欢迎参与讨论,请在这里发表您的看法和观点。