Gob*_*0st 2 c++ member-functions declare non-member-functions
非mumber函数可以多次delcared,而成员函数只能声明一次?这是正确的吗 ?我的例子似乎说是的.
但为什么 ?
class Base{
public:
int foo(int i);
//int foo(int i=10); //error C2535: 'void Base::foo(int)' : member function already defined or declared
};
//but it seems ok to declare it multiple times
int foo(int i);
int foo(int i=10);
int foo(int i)
{
return i;
}
int main (void)
{
int i = foo();//i is 10
}
Run Code Online (Sandbox Code Playgroud)
从标准(2003),§8.3.6/ 4说,
对于非模板函数,可以在稍后的同一范围内的函数声明中添加默认参数.
标准本身的示例:
void f(int, int);
void f(int, int = 7);
Run Code Online (Sandbox Code Playgroud)
第二个声明添加默认值!
另见§8.3.6/ 6.
还有一个有趣的(有点相关的)主题:
并且§9.3/ 2,
除了出现在类定义之外的成员函数定义之外,除了出现在类定义之外的类模板和成员函数模板(14.7)的成员函数的显式特化之外,不应重新声明成员函数.
希望有所帮助.