C 课后习题.docx

上传人:工**** 文档编号:562379181 上传时间:2024-01-30 格式:DOCX 页数:3 大小:13.91KB
返回 下载 相关 举报
C 课后习题.docx_第1页
第1页 / 共3页
C 课后习题.docx_第2页
第2页 / 共3页
C 课后习题.docx_第3页
第3页 / 共3页
亲,该文档总共3页,全部预览完了,如果喜欢就下载吧!
资源描述

《C 课后习题.docx》由会员分享,可在线阅读,更多相关《C 课后习题.docx(3页珍藏版)》请在金锄头文库上搜索。

1、1. 什么是面向对象技术?面向对象与面向过程程序设计有什么不同? 面向对象技术强调在软件开发过程中面向客观世界或问题域中的事物,采用人类 在认识客观世界的过程中普遍运用的思维方法,直观、自然地描述客观世界中的 有关事物。面向对象技术的基木特征主要有抽象性、封装性、继承性和多态性。 面向过程比面向对象要出现的早,面向过程的象C语言主要对程序的执行过程的 编写,面向对象象java语言主要是对类的编写和应用两者是有本质的区别的。2. 如何理解面向对象技术中的封装性、继承和多态性?封装:是指将数据和代码捆绑在一起,从而避免外界的干扰和不确定性。继承:特殊类的对象拥有其一般类的全部属性和行为,称为特殊类

2、对一般类的继 承。多态性:对一个对象发出消息时,对于相同的消息,不同的对象具有不同的反应 能力。这样,一个消息可以产生不同的响应效果,这种现象称为多态性。3. 简述构造函数,析构函数和拷贝函数的特点与用途。A、构造函数特点:函数名和类名相同;公有访问属性;无函数返回类型;对象 被创建之后自动调用;可以重载;可在类内或类外定义构造函数作用:初始化对象B、析构函数特点:名字特别加、没有参数;不能重载;对象生存期时,系统自 动调用;析构函数作用:在对象生存期结束之后自动执行清理工作C、拷贝构造函数特点:与类同名;没有返回类型;只有一个为该类对象的引用 作为参数;作用:实现对象之间的初始化4. 面向对

3、象中const有什么用途?可以实现同-个数据对象的不同场合不同途径的共享,同时防止错误操作对数据 的更改。5. 简述C+中的this指针的特点。指向本类对象,其值时当前被调用的成员函数所在的对象的起始地址,编译系统 自动实现。6. 简述静态数据成员和静态函数成员的特点和用途。静态数据成员特点:每个类中只有一个拷贝,可以实现同一类不同对象之间实现数据共享(static int number);生存期同程序周期一样松;初始化不加访问限定符且前面不加(static),例如int CStudent: TotleNumber=120; 静态成员函数:(例如:static int set_totle_le

4、n();)属于类的静态成员,但都不是对象成员;公有静态成员函数可以通过类名或者对 象名来调用,一半的非态成员函数只能通过对象名来调用;静态成员函数可以直 接访问该类的静态成员,不能直接访问非静态数据成员和非静态成员函数;若要, 可通过对象来引用。7. 友元函数、友元类的特点和用途是什么?友元(成员)函数特点:定义在类外部,但是需要在类体内进行说明;说明时在前 面加上关键字friendclass A(public: .friend (B:)double GetDistancefA start,A stop);.);友(成员)函数作用:提高程序的运行效率,可以访问类中的保护和私有成员; 友元类特点

5、:class Afriend class B;);友元类作用:能够允许一个类中的所有成员函数都能够访问另一个类中的私有成 员。8. 叙述继承与派生的定义。什么是单一继承?什么是多重继承?单一继承:一个类只从一个基类派生;多重继承:一个雷从多个基类派生。9叙述基类成员经公有继承后,在派生类中访问权限的变化。叙述基类成员经私有继承在派生类中访问权限的变化?公有继承之后public protected权限保持不变,private变为不可访问,私有继承 之后public protected均变为private,private变为不可访问。10、用派生类定义对象时构造函数的执行过程。调用基类的构造函数,

6、调用顺序按照他们被继承时声明的顺序(从左到右);调 用内嵌成员的构造函数,调用顺序按照他们在类中声明的顺序;派生类的构造函 数中的内容11、运算符重载需要遵循哪些原则?不改变运算符原有的含义不改变运算符原有的优先级别,也不能改变运算符需要的操作数的数目不能创建新的运算符,只能重载C+己有的有些运算符不能重载12、什么是多态性?在C+中如何实现多态的?多态性是指当不同的对象收到相同的消息时产生不同的动作。包括静态联编和动 态联编。静态联编是编译时的多态性,通过重载机制实现。动态联编时运行时的 多态性通过继承以及虚函数来实现。13、什么是纯虚构函数?什么是抽象类?抽象类能否定义对象实例?纯虚函数:

7、在声明时被初始化为0的虚函数。作用是:在基类中为其派生类保留 一个函数的名字,以便在派生类根据需要对他进行定义,可以实现运行时的多态 性。抽象类:如果在一个类中至少有一个纯虚函数则这个类被称为抽象类。抽象类必 须用作派生其他类的基类,不能直接创建对象实例,也不能用作函数参数类型。 这是因为其中的一个多个函数并未被定义。抽象类不能定义实例。14抽象类有何作用?抽象类的派生类是否一定要给出纯虚函数的实现?抽象类指的是含有纯虚函数的类,该类不能建立对象,只能声明指针和引用,用 于基础类的接口声明和运行时的多态另外,如果抽象类的某个派生类在向继承体 系的根回溯过程中,并不是所有的纯虚函数都实现了,该类

8、也是抽象类,同样不 能建立对象15、函数模板和模板函数的关系(1) 函数模板是个模板用来生成函数。模板函数是一个函数,由函数模板生成。(2) 函数模板是由程序员用代码写出来的,模板函数时编译系统在编译时 根据函数模板自动生成的。(3) 函数模板是模板的定义,是一类函数的抽象,代表了一类具有相同功 能的函数,不能够实际执行。模板函数是函数模板的实例,代表具体函数,具有 程序代码,占用内存空间,并可以实际执行。16、类模板实例化特点(1) 只有在类模板实例真正使用时才进行实例化;(2) 实例化类模板时编译器需要知道类模板的定义;(3) 实例化类模板时,除了构造函数和析构之外不会自动实例化类模板的其

9、他 成员函数。17、析构函数的调用顺序先构造的对象后析构,后构造的对象先析构。18、派生类生成步骤:继承基类成员重写基类成员定义新成员重写构造函数和析构函数Class CtimeWorker: public Cemployee public: CtimeWorker(); CtimeWorker();void daypay(); void pay();19、派生类不能直接访问基类的私有数据成员,需要通过调用基类的保护或者公有函数间接引用。20、虚基类机器派生类构造函数的执行顺序:虚基类构造函数非虚基类构造函数对象成员的构造函数派生类自己的构造函数21、虚函数的声明与实例化基类中. virtual double area()(return 0); )派生类中. double area。具体实现;;22、将基类的析构函数定义成为虚析构函数则可将所有对象的内存空间全部都释放,否则只释放基类对象所占空间o (virtualCbox();)

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 解决方案

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号