Visual-C++实用教程-精选版.ppt

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

1、静态数据成员表示的是类范围中所有对象共享的信息, 相当于局部于类中的“全局变量”,为该类的所有对象 共享。因为静态数据成员只有一个数据副本,所以可 以节省存储空间。 2、静态数据成员必须在文件作用域内进行初始化,而 且只能初始化一次。 1、静态数据成员 3、由于数据隐藏的需要,静态数据成员通常被声明为 私有的,而通过定义公有的静态成员函数来访问静 态数据成员。 * 静态数据成员的定义和初始化 class CCircle{ public: …… private: …… static int NumOfObject; // 程序中生成的对象的个数 }; int CCircle::NumOfObject=0; // 静态数据成员的初始化 *  静态成员函数:是用关键字 static 进行修饰的成员函数。  1、静态成员函数没有this指针,因此当其访问非静态 数据成员时,必须通过对象名或对象指针访问。 2、静态成员函数不能是虚函数。 2、静态成员函数 因为静态数据成员和静态成员函数是独立于类对象而存在的。即使在类还没有实例化任何对象时,静态数据成员和成员函数就已经存在并可使用。 定义格式: static 成员函数的原型 ; * 使用静态类成员(教材30页) 3、静态成员的访问 在类内:可直接访问。 在类外:只能访问公有静态成员 类名::成员名 ( 常用 ) 对象名.成员名(.和-) * 2.3 继承性和派生类 继承是面向对象程序设计的最重要的特点之一,是软件重用的一种重要形式,是对实际问题中分层特性的一种自然描述。 继承的实质:是从已有的类建立新类。 通过继承,派生类自动拥有基类的所有成员(数据成员和成员函数) 基类和派生类 单继承和多继承 * 2.3.1 派生类的定义 class 派生类名:继承方式 基类名 { 成员声明; }; * 继承方式 三种继承方式:public(公有)、 private(私有)、 protected(保护), 表2-1 继承方式对派生类的影响 继承方式 说 明 public(公有) 基类的public和protected成员被派生类继承后,保持原来的访问属性不变 private(私有) 基类的public和protected成员被派生类继承后,变成派生类的private成员 protected(保护) 基类的public和protected成员被派生类继承后,变成派生类的protected成员 * 派生类构成示意图: 派生类成员 基类部分 新定义部分 私有成员 保护成员 公有成员 私有成员 保护成员 公有成员 每个派生类对象所占有的存储空间的大小等于其基类部分的所有数据成员占有的存储空间的大小与新定义部分的所有数据成员占有的存储空间的大小的总和。 * 例2.3 类的派生示例教材31页 点----圆-----圆柱体 1 定义基类CPoint //Point.h文件 #include iostream.h class CPoint // 基类CPoint { public: CPoint ( double xx=0, double yy=0 ); virtual ~CPoint(); double GetX() { return X; } double GetY() { return Y; } double area() { return 0.0; } private: double X,Y; }; CPoint::CPoint( double xx, double yy ) { X=xx; Y=yy; coutCPoint 类构造函数被调用\n; } CPoint::~CPoint() { coutCPoint 类的析构函数被调用\n; } * 定义派生类CCircle //Circle.h文件 #include Point.h const double PI=3.14159; class CCircle : public CPoint { public: CCircle(double x=0, double y=0, double r=1); //派生类构造函数 virtual ~CCircle(); double GetRadius() { return radius; } double area() // 重新定义基类中的成员 { return PI*radius*radius; } privat

文档评论(0)

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

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

1亿VIP精品文档

相关文档