假设有3个类:
template <typename T>
class X;
template <typename T>
class Y;
template <typename T>
class Z;
我想为 X
定义一个构造函数它采用 Z<T>
类型的对象引用并返回 X<Y<T>>
类型的对象.这可以通过单个模板定义实现吗?
template <typename T>
X<Y<T>>::X(Z<T>) {
// logic to map Z<T> to Y<T> and pass it on for object creation.
}
我想如果我使用两个模板定义来定义构造函数会有明显的副作用。
最佳答案
是这样的吗?
template <class T>
class Z;
template <class T>
class Y;
template <class T>
class X
{
X(Z&);
};
template<class T>
X<Y<T>> MakeX(Z<T>& z)
{
return X<Y<T>>(z);
};
关于c++ - 模板类的专用构造函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22890675/