“this”指针的类型
在 C 中,类方法中的“this”指针指的是当前对象实例。它的类型取决于该方法是否声明为 const。
非常量方法内部:
在非常量方法内,'this' 的类型为 类名*这个。这允许直接修改对象的成员变量。
常量方法内部:
在 const 方法中,'this' 的类型为 const ClassName* this。这是因为 const 方法无法修改对象的状态。
编译器怪癖和实现的限制:
某些编译器,例如旧版本的 MSVC ,可能会实现 ' this' 作为常量指针,无论该方法是否为 const。然而,这是一种不符合 C 语言规范的非标准行为。
右值引用检测:
随着 C 中右值引用的引入11 后,就可以检测到这种非标准行为。依赖于此的代码将无法在符合标准的编译器中编译。
MSVC 实现:
从 Visual Studio 2017 开始,MSVC 仍然使用非标准实现'this' 作为常量指针。这可能会导致使用右值引用的代码出现问题。
以上是C 常量和非常量方法中'this”指针的类型是什么?的详细内容。更多信息请关注PHP中文网其他相关文章!