C++ Primer Plus 一个模板的用法

天王盖地虎626 发布于 08/02 22:47
阅读 87
收藏 0

如下图,第1处调用A模板,第2处调用B模板,可是,我发现,这2个模板转换后,都是ShowArray(double * arr[],int n)

我觉得岂不是完全没有区别了嘛?按理说,运行后,其结果应该一样啊?

为啥在第3处说,如果删除模板B,将只能调用模板A,运行结果是地址,这是为什么?

 

加载中
0
k
khedive

都是ShowArray(double * arr[],int n)没错,但与ShowArray(T arr[],int n)匹配的时候T是double *,与ShowArray(T * arr[],int n)的时候T是double,匹配成double的时候输出double的值,匹配成double*的时候输出的是指针地址

0
0
开源中国首席C菜鸟
开源中国首席C菜鸟
你需要把源码都放出来 淡出的这个pd不知道是不是代表第一个参数?
0
天王盖地虎626
天王盖地虎626

引用来自“khedive”的评论

都是ShowArray(double * arr[],int n)没错,但与ShowArray(T arr[],int n)匹配的时候T是double *,与ShowArray(T * arr[],int n)的时候T是double,匹配成double的时候输出double的值,匹配成double*的时候输出的是指针地址

明白了,谢谢

返回顶部
顶部