C++primer plus 习题+答案

第八章

1.哪种函数适合定义为内联函数?

解释:      

          一般来说,调用一个函数流程为:当前调用命令的地址被保存下来,程序将跳转到所调用的函数并执行该函数,最后跳转回之前所保存的命令地址。

        对于经常需要调用的小函数来说,这大大降低了程序运行效率。所以,新增了内联函数。

        关键字inline告诉编译器,任何地方只要调用内联函数,就直接把函数的机器码插入到调用它的地方。这样程序执行更有效率,就好像将内联函数中的语句直接插入到了源代码文件中需要调用该函数的地方一样。

适合于:

        只有一行代码的小型,非递归函数适合作为内联函数。

2.假设song()函数的原型如下:

void song(const char *name, int times);

a.如何修改原型,使times的默认值为1?

void song(const char*name, int times = 1);

b.函数定义需要做哪些修改?

没有,只有原型包含默认值的信息。

c.能否为name提供默认值"O. My Papa" ?

是的,如果保留times的默认值

3.编写iquote()的重载版本——显示其用双引号括起的参数。编写3个版本:一个用于int参数,一个用于double参数,另一个用于String参数

void iquote(int n)

{

    std::cout << "\"" << n << "\"" << std::endl;

}

void iquote(double n)

{

    std::cout << "\"" << n << "\"" << std::endl;

}

void iquote(std::string n)

{

    std::cout << "\"" <<

你可能感兴趣的:(c++,开发语言)