让我们考虑以下课程:
struct T {
T() {}
T(T&) {cout << "1";}
T(const T&) {cout << "2";}
};
为什么T::T(T&)
匹配比T::T(const T&)
以下初始化更好:
T a;
T b = a;
两个重载的复制 ctor 只需要简单的转换,那么为什么没有歧义呢?
让我们考虑以下课程:
struct T {
T() {}
T(T&) {cout << "1";}
T(const T&) {cout << "2";}
};
为什么T::T(T&)
匹配比T::T(const T&)
以下初始化更好:
T a;
T b = a;
两个重载的复制 ctor 只需要简单的转换,那么为什么没有歧义呢?