我本来打算通过实施seekpos在流缓冲的GNU在线文档源.我无法理解为什么__mode在行中注释ios_base::openmode /*__mode*/ = ios_base::in | ios_base::out以及它为什么不抛出错误.
virtual pos_type
seekpos(pos_type, ios_base::openmode /*__mode*/ = ios_base::in | ios_base::out)
{
return pos_type(off_type(-1));
}
Run Code Online (Sandbox Code Playgroud)
我可以理解评论的用法,如果它是以下格式:
void foo( pos_type, int /*blah*/ ){
...
}
Run Code Online (Sandbox Code Playgroud)
但是,在前一种情况下,还有意图分配一些东西__mode,因此我很惊讶没有在那里得到任何错误.
这是允许的吗?如果是,那为什么呢?
首先,它不是一个赋值,它是一个默认参数.你可以让任何甚至所有的论点都是匿名的.
如果函数内部没有使用参数,则可以省略变量名,只需要类型,并且(如上所述)甚至是默认参数.参数变量名称是可选的.