【发布时间】:2010-11-06 18:35:21
【问题描述】:
当我们通过引用传递参数时,是否可以给函数的参数一个默认值。在 C++ 中
例如,当我尝试声明如下函数时:
virtual const ULONG Write(ULONG &State = 0, bool sequence = true);
当我这样做时会报错:
错误 C2440:“默认参数”:无法从“const int”转换为“unsigned long &” 不是 'const' 的引用不能绑定到非左值
【问题讨论】:
-
幸运的是,我们不受 Google 风格指南的约束。
-
“不要这样做。Google 样式指南(和其他)禁止非常量通过引用传递”我认为样式指南包含许多主观部分。这看起来像其中之一。
-
WxWidgets style guide says "don't use templates" and they have good reasons -
@jeffamaphone:谷歌风格指南也说不要使用流。你会建议也避开它们吗?
-
锤子是一种用来放置螺丝刀的可怕工具,但它非常适用于钉子。您可以滥用某项功能这一事实应该只警告您可能存在的陷阱,而不是禁止其使用。
标签: c++ pass-by-reference default-value