6.40
(a) int ff(int a, int b = 0, int c = 0); //正常的
(b) char *init(int ht = 24, int wd, char backgrnd);//ht有默认值,所以后面的形参都必须有默认值
6.41
char *init(int ht, int wd = 80, char backgrnd = ' ');
(a) init();
(b) init(24,10);
(c) init(14,'*');
(a)不合法,至少应该传入一个实参
(b)合法
(c)合法,但是匹配有问题,char会被转化成int,是否是你想要的呢
6.42
include<iostream>
#include<string>
using namespace std;
//如果ctr不为1则返回word的复数版本
string make_plural(size_t ctr, const string &word,
const string &ending = "s")
{
return (ctr = 1) ? word : word + ending;
}
int main()
{
cout << "Singular version: " << make_plural(1, "success", "es")
<< "\t\t plural version: "
<< make_plural(0, "success", "es") << endl
<< "Singular version: " << make_plural(1, "failure")
<< "\t\t plural version: "
<< make_plural(0, "failure") << endl;
return 0;
}