欢迎来到天天文库
浏览记录
ID:28044569
大小:273.06 KB
页数:29页
时间:2018-12-07
《武汉理工大学c期末复习资料》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、C++期末基本概念面向对象编程的三大特征1)封装2)继承3)多态虚函数、重载函数特点,有哪些约束虚娥数是幼态多态,重载响数是静态多态。重载函数之间要求函数返冋值、函数名一致,但是参数不一致。虚函数要求函数返回值、函数名、参数都一致。纯虚函数作用?派生关系?如何实现?一、定义纯虚函数是在基类屮声明的虚函数,它在基类屮没有定义,但要求任何派生类都要定义自己的实现方法。在基类中实现纯虚函数的方法是在函数原型后加“=0”virtualvoidfuntion()=0二、引入原因1、为了方便使用多态特性,我们常常需要在基
2、类屮定义虚拟函数。2、在很多情况下,基类本身生成对象是不合情理的。例如,动物作为一个基类可以派生出老虎、孔雀等子类,但动物本身生成对象明显不合常理。为了解决上述问题,引入了纯虚函数的概念,将函数定义为纯虚函数(方法:virtualReturnTypeFunction()=0;),则编译器要求在派生类中必须予以重写以实现多态性。同时含有纯虚拟函数的类称为抽象类,它不能生成对象。这样就很好地解决了上述两个问题。三、相似概念1、多态性指相同对象收到不同消息或不同对象收到相同消息时产生不同的实现动作。C++支持两种多
3、态性:编译时多态性,运行时多态性。a、编译时多态性:通过重载函数实现b、运行时多态性:通过虚函数实现。2、虚函数虚函数是在基类屮被声明为virtual,并在派生类屮重新定义的成K函数,可实现成员函数的动态覆盖(Override)3、抽象类包含纯虚函数的类称为抽象类。由于抽象类包含了没有定义的纯虚函数,所以不能定义抽象类的对象。派生类访问基类成员有哪些访问控制?对象呢?区分“派生类对象”和“派生类”对基类成员的访问权限。“派生类对象”对基类成员的访问权限:(1)对于公有继承,只有基类的公有成员可以被“派生类对象
4、”访问,其他(保护和私有)成员不能被访闷。(1)对于私有继承和保护继承,基类屮所有成员都不能被“派生类对象”访问。“派生类”对基类中成员的访问权限:(1)对于公有继承,基类中的公有成员和保护成员可以被“派生类”访问,而基类中的私有成员不能被访闷。(2)对私有继承和保护继承,也是基类中的公宥成员和保护成员可以被“派生类”访问,而基类屮的私有成员不能被访问。多态性如何实现?、多态性指相同对象收到不同消息或不同对象收到相同消息时产生不同的实现动作。C++支持两种多态性:编译时多态性,运行时多态性。a、编译时多态性:
5、通过重载函数实现b、运行时多态性:通过虚函数实现。类和对象关系?每一个实体都是对象。有一些对象是具有相同的结构和特性的。每个对象都属于一个特定的类型,这个特定的类型称为类(class)。类代表了某一批对象的共性和特征。前面己说明:类是对象的模板,而对象是类的具体实例(instance)o正如同结构体类型和结构体变量的关系一样,需要先声明一个结构体类型,然后用它去定义结构体变量。同一个结构体类型可以定义出多个不同的结构体变量。在C++中也是先声明一个类类型,然后用它去定义若干个同类型的对象。对象就是类类型的一个
6、变量。可以说类是对象的模板,是用来定义对象的一种抽象类型。类是抽象的,不占用内存,而对象是具体的,占用存储空间。深拷贝、浅拷贝区别?1.深拷贝是指源对象与拷贝对象互相独立,其屮任何一个对象的改动都不会对另外一个对象造成影响。举个例子,一个人名叫张三,后来用他克隆(假设法律允许)了另外一个人,叫李叫,不管是张三缺胳膊少腿还是李叫缺胳膊少腿都不会影响另外一个人。比较典型的就是Value(值)对象,如预定义类型Int32,Double,以及结构(struct),枚举(Enum)等。2.浅拷贝是指源对象与拷贝对象共用
7、一份实体,仅仅是引用的变量不同(名称不同)。对其屮任何一个对象的改动都会影响另外一个对象。举个例子,一个人一开始叫张三,后来改名叫李四了,可是还是同一个人,不管是张三缺胳膊少腿还是李四缺胳膊少腿,都是这个人倒霉。比较典型的就有Reference(引用)对象,如Class(类)。深拷贝和浅拷贝的区别是在对象状态中包含其它对象的引川的时候,当拷贝一个对象时,如果需要拷贝这个对象引用的对象,则是深拷贝,否则是浅拷贝。抽象类作用?将不用来定义对象而只作为一种基本类型用作继承的类,称为抽象类(abstractclass
8、),由于它常川作基类,通常称为抽象基类。凡是包含纯虚函数的类都是抽象类。如果在派生类屮没有对所有的纯虚函数进行定义,则此派生类仍然是抽象类,不能用来定义对象。可以定义指向抽象类数据的指针变量。当派生类成为具体类后,就可以用这个指针指向派生类对象,然后通过该指针调用虚函数。带有纯虚函数的类称为抽象类。抽象类是一种特殊的类,它是为了抽象和设计的H的而建立的,它处于继承层次结构的较上层。抽象类是不能定义对
此文档下载收益归作者所有