【发布时间】:2011-05-09 21:15:52
【问题描述】:
我阅读了一些源代码,其中接口类中的许多虚函数被声明并默认实现为:
virtual bool FunctionName(TypeName* pointer)
{
(void)pointer;
return true;
}
请问在默认实现中将指针强制转换为 void 的目的是什么?
【问题讨论】:
-
这不应该编译,因为函数需要返回一个值。
-
这个问题被问了无数次。将某些内容转换为
void表示您没有使用返回值。在你的情况下,这是一个空操作。 -
@zneak:
pointer不是返回值。不是这个问题的傻瓜,虽然我确信这已经涵盖了参数。 -
我在这里不明白为什么代码不只是
FunctionName(TypeName*) { }(可能带有返回值)。哪个编译器会为此吐出“未使用”警告? -
@Steve 是一个具有内联定义的虚函数,所以如果它是一个没有做任何定义的基类,那么您仍然需要参数的名称以用于文档目的。