C++数组的引用
char &ary[],相当于(char &)ary[],ary是数组,数组元素是char &,不是数组的引用.
char (&ary)[],这样ary才是引用,引用对象是数组
引用数组,char[2] char[3]是两种不同的引用对象,故形参应指定数组的大小
void fun3(const char(&ary)[2] )
{
}
template <typename T>
void fun1(const T &ary1, const T &ary2)
{
}
template <typename T>
void fun2(const T ary1, const T ary2)
{
}
int main(int argc, char* argv[])
{
fun1("1", "23"); //fun1实例化为const char[2], const char[3],T被推断成两个类型,故错误
fun1("1", "2"); //T推断成const char[2]
fun2("1", "23"); //T推断成const char *
fun3("1");
return 0;
}