我知道这是一种不好的形式,应该在声明中指定默认值,但是如果您愿意,请放纵我一会儿.. 为什么会编译?到底发生了什么?
#include <iostream>
using namespace std;
class test
{
public:
test(int n);
};
test::test(int n = 666)
{
cout << n;
}
int main()
{
test t;
cin.sync();
cin.ignore();
return 0;
}
输出: 666
.. 模板如何影响同一段代码?
template <class T>
class test
{
public:
test(int n);
};
template <class T>
test<T>::test(int n = 666)
{
cout << n;
}
int main()
{
test<int> t;
cin.sync();
cin.ignore();
return 0;
}
错误:没有合适的默认构造函数可用
感谢您的时间!