shu*_*uji 9 c++ templates default-parameters
我在一个函数中更改了一个paremeter,使用模板接受任何类型的对象,但我不能将它与其他默认参数一起使用,是否有我遗漏的东西?
#include <string>
#include <iostream>
class MyClass {
public:
std::wstring msg = L"hey";
MyClass(){};
};
class MyClass2{
public:
template<class T> MyClass2(T* t, int i);
};
template<class T>
MyClass2::MyClass2(T* t,int i=0){ std::wcout << t->msg << std::endl; }
int main(int argc, char **argv)
{
MyClass mc;
MyClass2 mc2(&mc);
return 0;
}
Run Code Online (Sandbox Code Playgroud)
输出:
practice.cpp:16:32: error: redeclaration of 'MyClass2::MyClass2(T*, int)' may not have default arguments [-fpermissive]
Run Code Online (Sandbox Code Playgroud)
我认为在模板中不使用默认值是合理的,但其他参数是否有原因?
| 归档时间: |
|
| 查看次数: |
7434 次 |
| 最近记录: |