【发布时间】:2022-01-04 13:13:15
【问题描述】:
考虑这些模板类:
template <typename T>
class A{
T m_t;
public:
A(T t):m_t(t){};
};
template <typename T, typename D>
class B{
A<D> m_a;
T m_t;
public:
B(T t, A<D> a):m_t(t),m_a(a){};
};
这当然会起作用:
A<int> a{1};
.
这也将起作用,因为隐式转换:
A<int> a{'e'};
但这不会:
A<char> a{'e'}
B<int,int> b(1,a)
有什么解决方法吗?在实例化 B 类时,我希望在 char 和 int 之间进行隐式转换。
【问题讨论】: