我写了下面的代码:传递指针类型的模板参数
template <typename T>
void myname(T* x)
{
cout<<"x is "<<x;
}
,我调用:
char *p="stackOverflow";
myname(p);
它打印stackOverflow
。
但是,如果我将模板参数从(T* x)
更改为(T x)
,我会得到相同的结果。
那么两个模板参数有什么区别?
void myname (T x)
和
void myname (T* x)
Excelletanswer。如果是这种情况,如何传递像char **这样的双指针? – Whoami 2013-04-25 11:35:27
@Whoami你是什么意思?第一种情况使用T **,第二次使用T,第三种情况使用T *。打电话像'myname(&p)'; – ForEveR 2013-04-25 11:42:33
明白了吧)。多谢,伙计。 – Whoami 2013-04-25 11:45:37