第四章_C++类与对象.ppt

  1. 1、本文档共47页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第四章_C类与对象

C++类与对象 1. 类的声明 C++语言用保留字class声明一个类,一般形式为: class 类名 { public: 公有数据和函数(公有成员) protected: 受保护数据和函数(受保护成员) private: 私有数据和函数(私有成员) }; 其中,类名必须是一个有效的C++标识符,不能是C++语言的保留字,通常类名全部用大写字母表示。 数据成员与声明普通变量的方式想似,并且允许是任何数据类型,包括用户自定义的类类型(但不允许是当前正在定义的类,除非使用指针形式)。类中数据成员声明时不允许使用表达式进行初始化。并且,不允许使用auto、register和extern保留字进行修饰,但允许使用static修饰。 类的封装 通常将根据需求来定义类的过程称为类的封装。 在进行类的封装时,首先要确定类的成员,即定义成员变量和成员函数。另外,还要确定成员的封装程度。 类的成员按照隐藏或封装的程度来划分,具体有:私有的( p r i v a t e )、保护的( p r o t e c t e d )和公有的( p u b l i c )。 private 私有成员的隐藏性最好,一般只有类本身的代码或友元类的代码可以对其进行操作。类以外的代码对私有成员的操作一般要通过该类的公有函数(如gets和sets函数等)。 protected对于保护类型的成员,类本身的代码、友元类的代码以及派生类的代码可以对其进行操作。 public公有类型的成员的隐藏性最差,除了类本身的代码、友元类的代码等,类以外的代码也可以对其进行操作。 这里所说的类本身的代码是指:类定义体中的代码和类的成员函数定义体中的代码。 一个类中的公有函数形成与外界的接口,通过这个接口,可以对该类的私有变量和其他函数进行操作,通常也将这个接口称为应用程序设计接口。在设计类或封装类的时候,应将类中的成员变量尽量设置为私有类型的。(P20) class CIRCULAR_NUMBERS { public: CIRCULAR_NUMBERS(int max, int min, int curval); ~CIRCULAR_NUMBERS(); int get_value(); void increment(); void decrement(); private: int current; int max_val; int min_val; }; //类接口声明后,必须加逗号 2. 类的实现 类的实现指用程序代码编写类中每一个成员函数所要提供的功能。 一般形式为: 返回类型 类名::成员函数名(参数说明表) { 函数体; } 其中,“::”为作用域运算符,“类名::”用于表明其后的成员函数是在这个类中声明的。 //构造函数,设置循环计数器的上下限和当前值 CIRCULAR_NUMBERS::CIRCULAR_NUMBERS(int max, int min, int curval) { min_val=(min=max)? min : max; max_val=(min=max)? max : min; if(curvalmin_val) current=min_val; else if(curvalmax_val) current=max_val; else current=curval; return; } //析构函数 CIRCULAR_NUMBERS::~CIRCULAR_NUMBERS() { coutGoodBy!!!\n; //The iostream.h file needed to be included return; } //获取当前值 int CIRCULAR_NUMBERS::get_value() { return current; } //循环计数器加1 void CIRCULAR_NUMBERS::increment() { int mode=max_val-min_val+1; current=(current-min_val)+1%mode+min_val; } //循环计数器减1 void CIRCULAR_NUMBERS::decrement() { int mode=max_val-min_val+1; current=((current-min_val)-1+mode) % mode+min_val;

文档评论(0)

asd522513656 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档