C++课件chap7 类与对象.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
* Line::Line (Point a,Point b,int c):p1(a),p2(b) { color=c; } //其它函数的实现略 void main() { Point pa, pb(5,5); Line la; Line lb(pa,pb,255); } * class B; Class A {public: void f ( B b ) ; }; Class B { public: void f (A a ); }; 前向引用声明: * 小 结 一个类具有数据成员,还具有成员函数,通过成员函数可以对数据成员进行操作,并实现其它的功能。 定义一个类后可以把类名作为一种数据类型,定义其“变量”(即对象)。 程序利用成员操作符“.”或箭头操作符“-”访问类的公共成员。 程序可以在类体的外部或内部定义其成员函数,在类体的外部定义其成员函数时,须指出所属的类名,并用作用域分辨符“::”把类名和函数名连接起来。 * 类的成员都可以被说明为公有、保护和私有。公有成员可以在程序中任意被访问,而保护或私有成员只能被这个类的成员函数所访问。 把成员说明为私有的或保护的,使类的使用者在使用它时,只关心接口,无须关心其内部实现,既方便使用,又保护了内部结构。这就是封装的原理。 含有类的程序结构,充分体现了类的封装和重用,更容易理解。 * 构造函数是一种用于创建对象的特殊成员函数,调用它为类对象分配空间,给它的数据成员赋初值,以及其他请求资源的工作。 析构函数是一种用于撤销对象,回收对象占有资源的特殊成员函数,它与构造函数功能互补,成对出现。 每个类对象都必须在构造函数中诞生,一个类可能定义一个或多个构造函数,编译程序按对象构造函数声明中使用的形参数与创建对象的实参数比较,确定使用哪个构造函数,这与普通重载函数的使用方法类似。 * 在包含有对象成员的类对象被创建时,需要对对象成员进行创建,相应地要调用对象成员的构造函数。 拷贝构造函数用于由一个已知的对象创建一个新对象。 缺省构造函数和缺省析构函数用于在类中未显式定义构造函数和析构函数的情况,以创建一个对象(只分配数据成员的存储空间,不能初始化值),自动调用缺省的析构函数,以撤销一个对象并回收资源。 struct、union struct Date { int day, month, year; void init_date(int d, int m, int y); void add_year(int year); void add_month(int month); void add_day(int day); } union u_type { int num; char ch[2]; void set_num(int anint); void showchars(); } * * 本章作业 P238: 1 ( 4、8、16 ) 2(1、4、24) 7(7) 课堂练习2 请大家改进前面练习所写的整型堆栈类,目标如下: 创建堆栈时可以指定堆栈的大小; (示例程序ex3-1-6g.cpp) * * 三、拷贝构造函数 拷贝构造函数是一种特殊的构造函数, 其形参之一为本类对象的引用。 如果程序中未定义,则系统自动产生出 一个默认的拷贝构造函数。 class 类名 { public : 类名(形参); //构造函数 类名(类名 对象名); //拷贝构造函数 ... }; * 拷贝构造函数举例 class Point { public: Point(int xx=0,int yy=0){X=xx; Y=yy;} Point(Point p); int getX( ) {return X;} int getY( ) {return Y;} private: int X,Y; }; * Point::Point (Point p) { X=p.X; Y=p.Y; cout“copy constructor is calledendl; } 拷贝构造函数的实现 *

文档评论(0)

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

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

1亿VIP精品文档

相关文档