是在编译时还是运行时检查“const成员函数”?

时间:2011-05-16 22:56:28

标签: c++

我想知道检查const成员函数的时间是什么时候?我想它发生在编译时,但不能确定。 有谁知道吗?

3 个答案:

答案 0 :(得分:4)

它发生在编译时。在C ++中,几乎所有类型检查都是在编译时完成的。唯一的例外是使用dynamic_cast

因此,在编译时检查您的const成员函数。

答案 1 :(得分:0)

在编译时检查const成员函数。

答案 2 :(得分:0)

成员函数的

const会影响this指针的类型。在编译时检查类型安全性(除非使用强制转换绕过,大多数强制转换旁路安全检查,dynamic_cast添加运行时检查)。

但是,在大多数架构const上,ness不仅仅是一种类型检查,而是由内存保护单元强制执行。这在运行时发生,并且不被const_cast(或C样式转换)绕过。