c++ - 模板构造函数如何工作?
问题描述
在某些课程中,我发现了一些带有类型的构造函数的代码。我认为构造函数不可能的事情。
更具体地说,我不明白这两段代码:
template<class T>
class ValuePtr
{
public:
template<class T> ValuePtr(ValuePtr<U> const &uPtr) :
myPtr(uPtr.get()->clone())
{}
T* get() {return myPtr;}
// ...
};
而这种变化:
template<class T>
class ValuePtr
{
public:
template<class U> ValuePtr(ValuePtr<U> const &uPtr) :
myPtr(uPtr.get()->clone())
{}
T* get() {return myPtr;}
// ...
};
我看到的是一个复制构造函数,我理解,但是为什么在这种类型的构造函数之前有一个类型,为什么在第二个代码中,类型不同?(模板而不是模板)?这些构造函数有什么意义?
解决方案
推荐阅读
- javascript - 导航栏链接其他页面上的打开选项卡?
- mq - 2 个 QM 通过 Sender 和 RCVR 互相交谈不工作
- r - 4个不同的情节成为一个独特的情节
- javascript - Javascript 执行阻止 SVG 动画
- c# - 如何在 MVVM 模式中实现 OpenFileDialog WPF 代码
- flutter - 在 Flutter 中处理没有互联网连接的最佳方法是什么
- terraform - Terraform 间歇性地无法使用模板克隆 Windows VM
- javascript - 从 ajax 捕获对象 - asp.net core 2.1
- c# - 在 C# 中将 MSG 电子邮件转换为 PDF 文件
- python-3.x - 如何在注册所有输入的python中进行连续输入