c++primer第五版 第六章习题(41-50)

6.41

a.非法,第一个形参未设置默认实参,调用时需要提供一个实参

b.合法

c.语法上合法,但是与原意不符

6.42

#include 
#include 

using namespace std;

string make_plural(size_t ctr, const string &word, const string &ending = "s")
{
    return (ctr > 1) ? word + ending : word;
}

int main()
{
    cout << "success's singular is : " << make_plural(1, "success", "es") << endl;
    cout << "success's plural is :" << make_plural(2, "success", "es") << endl;
    cout << "failure's singular is: " << make_plural(1, "faliure") << endl;
    cout << "failure's plural is: " << make_plural(2, "failure") << endl;

    return 0;
}

6.43

a.内联函数,内联函数对编译器而言是必须课件的,以便编译器能够在调用点内联展开该函数的代码,所以仅有函数的原型不够。并且与一般函数不动,内联函数有可能在程序中定义不止一次,此时必须保证在所有源文件中定义完全相同,吧内联函数的定义放在头文件中可以确保这一点

b.函数声明,放在头文件中

6.44

inline bool isShorter(const string &s1, const string &s2)
{
    return s1.size() < s2.size();
}

6.45略

6.46

不符合,不是常量表达式

6.47

6.48

6.49

你可能感兴趣的:(c++,c++,primer,第五版习题解答)