第06章类的基础概念.ppt

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

类的定义 自动生成的默认构造函数 如果没有声明任何构造函数,编译器将自动生成1个默认构造函数,但不执行任何操作(数据成员仍然没有被初始化) Tricycle::Tricycle( ) { //nothing } 如果没有定义析构函数,编译器也会自动生成1个函数体为空的析构函数。 -*- 补充说明 默认构造函数是没有参数的构造函数,可以自己定义,也可以由编译器自动生成。 只要写了某种构造函数,编译器就不再自动提供默认构造函数,如果此时需要默认构造函数,必须自己定义。 -*- 良好编程习惯:尽量自己编写缺省构造函数,而不是使用 系统提供的缺省构造函数。 -*- 加入构造函数的Tricycle类 #include iostream class Tricycle { public: Tricycle( int initialSpeed ); Tricycle(); ~Tricycle(); void pedal(); void brake(); int getSpeed(); void setSpeed(int newSpeed); private: int speed; }; 多个版本的构造函数形成 重载的关系。 析构函数不能重载。 -*- 加入构造函数的Tricycle类 Tricycle::Tricycle(int initialSpeed) { setSpeed(initialSpeed); std::coutTricycle created...\n; } Tricycle::Tricycle( ) { setSpeed(0); std::coutTricycle default created...\n; } Tricycle::~Tricycle() { std::coutTricycle destroyed\n; } -*- 加入构造函数的Tricycle类 int Tricycle::getSpeed() { return speed; } void Tricycle::setSpeed(int newSpeed) { if(newSpeed=0) { speed=newSpeed; } } -*- 加入构造函数的Tricycle类 void Tricycle::pedal() { setSpeed(speed+1); std::coutpedaling...Speed: speedstd::endl; } void Tricycle::brake() { setSpeed(speed-1); std::coutBraking...Speed: speedstd::endl; } -*- 加入构造函数的Tricycle类 int main() { Tricycle wichita(5); wichita.pedal(); wichita.pedal(); wichita.brake(); wichita.brake(); wichita.brake(); return 0; } 创建wichita,系统调用其构造函数,main函数结束时, wichita被销毁,将要调用其析构函数。 * * * * * * * 但是如果有类中有常成员,则这个常量会在每个类对象中保存一份拷贝,造成了数据的冗余。,可以采用静态变量解决这个问题。 * 成员访问权限的控制: 公有继承public 私有继承private 保护继承protected 公有继承(public) 基类的公有成员和保护成员作为派生类的成员时,它们都保持原有的状态,而基类的私有成员仍然是私有的 私有继承(private) 基类的公有成员和保护成员都作为派生类的私有成员,并且不能被这个派生类的子类所访问 保护继承(protected) 基类的所有公有成员和保护成员都作为派生类的保护成员,并且只能被它的派生类成员函数或友元访问,基类的私有成员仍然是私有的 系统的默认值是私有继承(private)。 -*- 本章内容安排 类型 类的定义 使用对象 构造析构函数 -*- 类型 分类和抽象是人类认知世界的基本方法。 人类将所见到的事物按照特征进行分类,以抽象的概念加以描述,同时建立类别之间的关系。 如北美野人是一种哺乳动物,哺乳动物是动物的一种,而动物是生物的一种。 C++中,可以使用基本类型(内置类型),还可以创建新的自定义类型 类型:对分类的抽象描述; 对象:对现实世界中特定事物的模拟; 面向对象编程:使用程序中的对象模拟现实世界的编程模式,对象是包含数据和功能的实体。 -*- 类型的要素 声明某种类型的变量时,隐含了三个方面的信息 变量占

文档评论(0)

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

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

1亿VIP精品文档

相关文档