Possible Duplicate:
casting unused return values to voidC++铸造无效的目的是什么?
我看了一些源代码,并在接口类是许多虚拟函数声明和缺省实现这样:
virtual bool FunctionName(TypeName* pointer)
{
(void)pointer;
return true;
}
请问什么是铸造指针的目的在默认实现中失效?
Possible Duplicate:
casting unused return values to voidC++铸造无效的目的是什么?
我看了一些源代码,并在接口类是许多虚拟函数声明和缺省实现这样:
virtual bool FunctionName(TypeName* pointer)
{
(void)pointer;
return true;
}
请问什么是铸造指针的目的在默认实现中失效?
一举多得取决于你投什么
T
给出,并返回了某些函数调用的结果可能与不同在某些情况下。显式类型转换到T
可能,在void
的情况下,防止编译时错误:int f() { return 0; } void g() { return (void)f(); }
(void)a, b
永远不会调用一个重载逗号操作功能)。注意,标准保证永远不会有所谓的,如果你施放一个类对象void
一个operator void()
(一些版本的GCC忽略规则,虽然)。
在这种情况下,它只是避免编译器关于未使用的参数警告。
+1:为了给出正确的答案 – 2010-11-14 19:07:58
为什么首先要做这样的参数? – stackptr 2014-03-18 22:58:06
该参数可能发生,因为其他一些也实现此虚函数的类实际上使用该参数。 – 2014-07-24 11:29:15
这不应该编译,因为函数需要返回一个值。 – 2010-11-14 17:34:32
这被问了无数次。将某些东西转换为“void”表示您没有使用返回值。在你的情况下,这是一个无操作。 – zneak 2010-11-14 17:35:58
@zneak:“指针”不是一个返回值。不是这个问题的一个骗局,尽管我确信这个参数也被覆盖过。 – 2010-11-14 17:46:44