功能中的注释参数

Vis*_*kar 4 c++

我本来打算通过实施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,因此我很惊讶没有在那里得到任何错误.

这是允许的吗?如果是,那为什么呢?

Som*_*ude 5

首先,它不是一个赋值,它是一个默认参数.你可以让任何甚至所有的论点都是匿名的.

如果函数内部没有使用参数,则可以省略变量名,只需要类型,并且(如上所述)甚至是默认参数.参数变量名称是可选的.

  • 那么提供默认值有什么意义呢? (5认同)