gpt4 book ai didi

c++ - 将指针类型传递给模板参数

转载 作者:搜寻专家 更新时间:2023-10-31 00:39:24 34 4
gpt4 key购买 nike

我写了下面的代码:

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)

最佳答案

第一种情况 - T 被推导为 char,因此 T* 将是 char*。第二种情况 - T 被推断为 char*。这里的区别在于调用这样的函数

对于第一种情况应该是

myname<char>(p);

第二个

myname<char*>(p);

此外,当您在函数中使用类型 T 时也会有所不同。

关于c++ - 将指针类型传递给模板参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16212862/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com