还剩11页未读,继续阅读
本资源只提供10页预览,全部文档请下载后查看!喜欢就下载吧,查找使用更方便
文本内容:
面向对象的程序设计语言-C本课件的第章将讨论面向对象编程的基础概念、语言支持的面向对象编程4C特性以及面向对象设计的一些原则和技巧什么是面向对象的编程?定义1面向对象编程是一种编程范式,通过构建对象的实例来模拟现实世界的概念和关系优点2提高代码的可维护性、重用性和可扩展性,更好地组织和封装代码示例3将一个汽车抽象为一个类,拥有属性和方法,可以轻松创建多个汽车实例Car语言如何支持面向对象的编程?C封装1使用结构体将相关的数据和函数封装在一起继承2使用指针和函数指针实现结构体的继承特性多态3通过函数指针和函数指针表实现多态性封装如何在语言中实现封装?C数据和行为1使用结构体将相关的数据和函数封装在一起数据隐藏2使用关键字限制结构体成员的访问权限static访问封装3通过暴露公共接口来访问封装的数据和函数类和对象的概念类对象关联关系123类是一种用户定义的数据对象是类的一个实例,拥对象可以与其他对象建立类型,描述了对象的属性有类定义的属性和行为关联关系,构成复杂的数和行为据结构类的定义及成员变量和成员函数类的定义成员变量成员函数123使用结构体定义一个类的成员变量存储类的状态和成员函数是类的行为和操模板,并在模板中定义成属性信息作员变量和成员函数构造函数和析构函数的作用构造函数析构函数使用场景123构造函数在创建对象时初析构函数在对象销毁时释构造函数和析构函数用于始化对象的成员变量放对象所占用的资源对象的初始化和清理工作静态成员变量和静态成员函数静态成员变量静态成员函数使用场景123静态成员变量是类的共享静态成员函数属于类而不静态成员用于记录类共享变量,存储在静态数据区属于对象,可以直接通过的状态和实现与类相关的类名调用辅助函数继承基类和派生类的概念基类派生类关系类型123基类是被继承的类,提供派生类从基类继承属性和继承关系可以是公有、私了方法和属性的基础实现方法,并可以添加自己的有或受保护的属性和方法继承的类型公有继承、私有继承和受保护继承公有继承1派生类可以访问基类的公有成员私有继承2派生类无法访问基类的成员,但可以通过基类的公有成员间接访问受保护继承3派生类可以访问基类的受保护成员多态虚函数和纯虚函数虚函数纯虚函数多态性123通过在基类中声明虚函数,只有函数的声明而没有实通过基类指针或引用调用派生类可以重写虚函数实现的虚函数是纯虚函数,派生类的虚函数,实现运现自己的行为必须在派生类中实现行时的多态性虚函数和多态的原理虚函数表1编译器会在每一个包含虚函数的类中生成一个虚函数表,根据类的虚函数表来调用对应的虚函数虚函数指针2每个类的对象在内存中都会有一个指向该类虚函数表的指针,用于实现动态绑定动态绑定和静态绑定3动态绑定在运行时选择调用的函数,静态绑定在编译时确定调用的函数基类指针和派生类指针基类指针派生类指针灵活性123可以指向派生类对象,并只能指向派生类对象,并使用基类指针和派生类指通过基类指针访问派生类可以调用派生类特有的成针可以实现灵活的多态性的成员函数和成员变量员函数和成员变量。