1. 比较短小的函数,太大了占用内存太多。
2.
a. void song(const char * name, int times = 1);
b.函数定义不需要做任何改变
c.不可以,因为是const
3.
void iquote(int i);
void iquote(double d);
void iquote(string s);
4.
template <typename T>
Void show(T &t);
struct box
{
Char maker[40];
Float height;
Float width;
Float length;
Float volume;
};
template <> void show<box> (box &b);
Int main()
{…}
template <> void show<box> (box&b)
{
cout<<b.maker<<height<<width<<length<<volume<<endl;
}
5.void fill(array<double, Seasons> &pa);
void show(array<double, Seaons> &da);
6.
a.doublemass(double dentisy, double volume =1.0);
b.不行,默认值只能从右往左添加
c.可以使用函数模板
d.不行,参数标记一样了,程序不能解析函数重载
7. template <typename T>
T big(T a, T b)
{
if (a>b)
return a;
else
return b;
}
9.
decltype的语法是
decltype ( expression )
这里的括号是必不可少的。根据前面的说法,decltype的作用是“查询表达式的类型”,因此,上面语句的效果是,返回expression 表达式的类型。注意,decltype 仅仅“查询”表达式的类型,并不会对表达式进行“求值”。
v1 float
v2 float &
v3 float &
v4 int
v5 float