欢迎来到天天文库
浏览记录
ID:57240842
大小:26.50 KB
页数:6页
时间:2020-08-07
《面向对象程序设计第二章课后答案教学内容.doc》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、面向对象程序设计第二章课后答案1.什么是命名空间,如何访问命名空间的成员?【解答】为了解决不同文件中同名变量的问题,C++标准中引入命名空间的概念。命名空间(namespace)是一种特殊的作用域,命名空间可以由程序员自己来创建,可以将不同的标识符集合在一个命名作用域内,这些标识符可以类、对象、函数、变量、结构体、模板以及其他命名空间等。在作用域范围内使用命名空间就可以访问命名空间定义的标识符。有3种访问方法:(1)直接指定标识符,访问方式为:命名空间标识符名∷成员名。(2)使用usingnamesp
2、ace命令(3)使用using关键词声明2.什么是内联函数,它有什么特点?哪些函数不能定义为内联函数?【解答】用inline关键字声明或定义的函数称为内联函数。C++中对于功能简单、规模小、使用频繁的函数,可以将其设置为内联函数。内联函数(inlinefunction)的定义和普通函数相同,但C++对它们的处理方式不一样。在编译时,C++将用内联函数程序代码替换对它每次的调用。这样,内联函数没有函数调用的开销,即节省参数传递、控制转移的开销,从而提高了程序运行时的效率。但是,由于每次调用内联函数时,需
3、要将这个内联函数的所有代码复制到调用函数中,所以会增加程序的代码量,占用更多的存储空间,增大了系统空间方面的开销。因此,内联函数是一种空间换时间的方案。函数体内有循环语句和switch语句,递归调用的函数不能定义为内联函数。3.什么是函数重载?在函数调用时,C++是如何匹配重载函数的?【解答】函数重载是指两个或两个以上的函数具有相同的函数名,但参数类型不一致或参数个数不同。编译时编译器将根据实参和形参的类型及个数进行相应地匹配,自动确定调用哪一个函数。使得重载的函数虽然函数名相同,但功能却不完全相同。
4、在函数调用时,C++是匹配重载函数规则如下:首先寻找一个精确匹配,如果能找到,调用该函数;其次进行提升匹配,通过内部类型转换(窄类型到宽类型的转换)寻求一个匹配,如char到int、short到int等,如果能找到,调用该函数;最后通过强制类型转换寻求一个匹配,如果能找到,调用该函数。4.设置函数参数的默认值有何作用?【解答】C++中允许函数提供默认参数,也就是允许在函数的声明或定义时给一个或多个参数指定默认值。在调用具有默认参数的函数时,如果没有提供实际参数,C++将自动把默认参数作为相应参数的值5
5、.什么叫引用,使用引用时需要注意哪些问题?【解答】引用是一个变量的别名。使用引用时,必须在定义时进行初始化,不能在定义完后再赋值。6.new运算符的作用是什么?delete运算符的作用是什么?【解答】在C++程序中,new是动态分配内存的运算符,自动计算需要分配的空间。delete是撤销动态申请的内存运算符。delete与new通常配对使用,建立堆对象时使用new运算符、删除堆对象时delete使用运算符。7、#include"stdafx.h"#include"iostream"usingnames
6、pacestd;intMin(intx1,intx2);intMin(intx1,intx2,intx3);intMin(intx1,intx2,intx3,intx4);int_tmain(intargc,_TCHAR*argv[]){intx1,x2,x3,x4;cout<<"inputx1,x2,x3,x4"<>x1>>x2>>x3>>x4;cout<7、x4)<8、e"iostream"#includeusingnamespacestd;#definepi3.141592doubleArea(doubleR);doubleArea(doublea,doubleb);doublePerim(doubleR);doublePerim(doublea,doubleb);int_tmain(intargc,_TCHAR*argv[]){doubler;doublem;doublen;cout<<"请输入圆的半
7、x4)<8、e"iostream"#includeusingnamespacestd;#definepi3.141592doubleArea(doubleR);doubleArea(doublea,doubleb);doublePerim(doubleR);doublePerim(doublea,doubleb);int_tmain(intargc,_TCHAR*argv[]){doubler;doublem;doublen;cout<<"请输入圆的半
8、e"iostream"#includeusingnamespacestd;#definepi3.141592doubleArea(doubleR);doubleArea(doublea,doubleb);doublePerim(doubleR);doublePerim(doublea,doubleb);int_tmain(intargc,_TCHAR*argv[]){doubler;doublem;doublen;cout<<"请输入圆的半
此文档下载收益归作者所有