网站大量收购独家精品文档,联系QQ:2885784924

第7章 深入C++Builder面向对象.pptVIP

  1. 1、本文档共58页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第7章 深入C++Builder面向对象技术 7.1 类和对象 7.2 对象的属性与事件 7.3 VCL类库的结构 7.4 流与文件 7.1 类 和 对 象 类是面向对象程序设计的核心,它实际上是一种新的数据类型,也是实现抽象数据类型的工具。类描述了数据结构(对象属性)、算法(方法)和外部接口(消息协议),因而提供了完整的解决问题的能力。 7.1.1 类的访问属性 类的访问属性分为三个级别:private(私有)、public(公有)和protected(保护)。在任何类中,都有外部可以访问的public部分和仅供内部访问的private部分。类将内部实现细节隐藏起来,使类的用户不用对此操心,而用户接口是公开的。一般将成员数据设置为private,对这些数据的访问可通过它的某些成员函数来访问,而这些成员函数将被声明为public。访问级别为保护的类成员和私有的类成员相似,该类的用户不能访问,但它的派生类的用户可以访问该派生类中相应的成员。 例如,下面的代码定义了BankAccount类: class BankAccount { private: float balance; unsigned accountNumber; public: void deposit (float amount) { balance+= amout; } void withdraw (float amout) { balance-= amout; } float getbalance ( ) { return balance; } }; BankAccount类具有两个数据成员:balance和accountNumber,分别表示存款余额和账号,它们是私有成员。该类还具有三个方法:deposit、withdraw和getbalance,分别用于存款、取款和查询余额,它们都是公有成员。用户程序不能直接对balance进行存取,必须调用有关的方法deposit或withdraw才能修改balance,实现了对重要数据成员的保护。 7.1.2 对象与this指针 C++在为类建立对象实例时,系统定义了一个指向该对象的指针。该指针被命名为this,可以用在成员函数中。因此,我们可以将this指针想像成一个隐式指针,即对于类X,系统事先定义了X *this(指向X的指针),并且将对象的地址赋给this,this是该对象的一个局部变量。在上述BankAccount类中,void deposit (float amount) 方法中使用的balance+=amout 等价于this-balance+=amout。 在C++中,类中所有的方法对数据成员进行存取,都是利用this通过指针方式处理的。在大多数场合下,C++允许我们忽略this指针,而直接使用以变量方式存取所说明的成员。 7.1.3 构造函数与析构函数 建立一个类的对象实例时,编译系统要为该对象分配存储空间并进行必要的初始化工作,这些工作由类的构造函数来完成。C++的构造函数是类的一种特殊的成员函数,其函数名必须与类名相同。该函数可以含有任意类型的参数,但不能有返回值。如果未在类声明中说明构造函数,则系统以缺省方式定义一个构造函数,该构造函数将对象中所有的数据成员都初始化为零。这不一定符合使用的要求,因此,实际上很少使用缺省的构造函数。 构造函数的函数体可写在类体之内,也可以写在类体之外。构造函数还可以被重载,即可以为一个类定义多个参数个数和类型不同的构造函数。 在创建对象时系统会自动调用构造函数,用户程序中不能直接调用构造函数。 当采用静态方式建立对象时,构造函数在执行对象说明语句时被调用。当采用动态方式建立对象时,则构造函数在执行new运算符时被调用。BCB的VCL对象一般都采用动态方式建立,例如: TForm* Form1; Form1=new (TForm); 下面的例子是在BankAccount类中添加了一个构造函数。 class BankAccount { private: float balance; unsigned accountNumber; public: void deposit (float amount) { balance+= amout; } void withdraw (float

文档评论(0)

peace0308 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档