Eam*_*han 4 c++ variables constructor arguments
我想知道,当有人为您提供C++中默认构造函数的模板时,在参数中有一系列未命名的变量,它们以某种方式被赋值.这是什么意思?这合法吗?如何访问这些变量?
我收到的例子:
IntSet::IntSet(int = -1, int = -1, int = -1, int = -1); //default constructor
Run Code Online (Sandbox Code Playgroud)
我将不胜感激任何澄清此用途的答案!
在声明或函数定义中不命名参数是完全合法的.在声明和定义中为给定参数使用不同的名称也是完全合法的.
请注意,如果无法访问定义中未命名的参数.为什么这样?很多编译器都可以抱怨未使用的参数.如果函数定义没有命名那些未使用的参数,大多数编译器都不会抱怨.
关于声明中未命名的参数,这是这个问题的主题:仅仅因为这样做是合法的并不一定意味着它是一个好习惯.函数声明中的那些未命名的参数可能适用于编译器,但它们对于人类读者来说并不合适.没有名字=零通信.文档和头文件应包含外部用户需要知道的有关如何使用该类的所有内容.RTFM和RTFH(阅读精细手册/阅读精细标题).RTFM和RTFH中的"F"字("精细")在RTFC中具有不同的含义.
标题中的那些未命名的参数几乎不可避免地伴随着糟糕的文档.作为外部用户,这迫使我阅读函数的定义以了解如何使用函数.RTFC.当外部用户必须阅读实现以确定发生了什么时,这是不正常的.