- 1、本文档共45页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
[高等教育]C课件第2章B
不论类成员函数在类内还是类外定义,不论是否用inline声明,都用同一块内存空间存储,不占用对象的存储空间 对象所占用的存储空间只是该对象的数据部分所占用的存储空间 “调用对象的成员函数”? ●声明一个类的实例(对象)和声明一个一般变量相同,例如: 通过对象名和成员运算符访问对象中的成员 通过指向对象的指针访问对象中的成员 通过对象的引用来访问对象中的成员 1.通过对象名和成员运算符访问对象中的成员 对象名.成员名或对象名.成员函数 2.通过指向对象的指针访问对象中的成员 3.通过对象的引用来访问对象中的成员 例2.1: 注意: 例2.2:引用多个对象的成员 例2.2:引用多个对象的成员 说明: 例2.2:引用多个对象的成员 例2.3:将例2.2程序改用含成员函数的类来处理 说明: 例2.4:找出一个整型数组中的元素的最大值 ●公用接口与私有实现的分离 类的公用的成员函数是用户使用类的公用接口或是类的对外接口. 通过成员函数的调用对类的数据成员进行操作称为类的实现. ●类的声明和成员函数定义的分离 为了减少一个类被多个程序使用时的重复工作量,面向对象的程序开发一般将类的声明(包括成员函数的声明)放在一个头文件中,类的成员函数放在另一个文件中。 ●类的声明和成员函数定义的分离 C++中把若干个常用的功能相近的类声明集中在一起,形成类库。 类库分为:标准类库;自定义类库; 类库包括两部分:类声明头文件;已经编译过的成员函数的定义,它是目标文件。 面向对象程序设计方法概述 类的声明和对象的定义 类的成员函数 对象成员的引用 类和对象的简单举例 类的封装性和信息隐蔽 cout“op1 i=”i“op1 j=”jendl; i=op2.getx( ); j=op2.gety( ); cout“op2 i=”i“op2 j=”jendl; } 程序执行结果: op1 i=1 op1 j=2 op2 i=3 op2 j=4 说明: op1.setpoint(1,2)的含义 在类的内部所有成员之间都可以通过成员函数直接访问,但是类的外部不能访问对象的私有成员。 cout“op.x=”i“op.y=”jendl;} void main( ) {point op; int i,j; op.setpoint(1,2); i=op.x; j=op.y; //不能直接引用对象的私有成员 可以换为i=op.getx( );j=op.gety( ) 例如: Class Time { public: int hour; int minute; }; Time t,*p; //定义对象t和指向类的指针变量p p=t; //使p指向对象t Coutp-hour; //输出p指向的对象中的成员 p指向t的前提下, p-hour等价于: (*p).hour和t.hour 如果为一个对象定义一个引用,它们是共占同一段存储单元的,实际上,它们是同一个对象,只是名字不同而已. 例如: Time t1; Time t2=t1; Coutt2.hour; #includeiostream Using namespace std; Class Time { public: int hour; int minute; int sec; }; int main( ) { Time t1; cint1.hour; cint1.minute; cint1.sec; coutt1.hour“:” t1.minute“:” t1.secendl; return 0; }; 12 32 43 12:32:43 1.在引用数据成员时不要忘记在前面指定对象名 2.不要把对象名写成类名,例如写成 Time.hour。 因为: 类是一个抽象的数据类型,不是实体,不占存储空间,而对象实际存在,占存储空间。其数据成员可以被引用。 3.如果删去主函数中的3个输入语句,则数据成员的值不可预知。 (1)程序a #includeiostream Using namespace std; Class Time { public: int hour; int minute; int sec; }; int main( ) { Time t1; cint1.hour; cint1.minute; cint1.sec; coutt1.hour“:”
文档评论(0)