"this"关键词,这是什么意思?

"this" keyword, what does this mean?

本文关键字:意思 是什么 this 关键词      更新时间:2023-10-16

我在谷歌上搜索了关键词"this",他们中的大多数人都给出了类似的例子。

http://www.geeksforgeeks.org/this-pointer-in-c/http://www.tutorialspoint.com/cplusplus/cpp_this_pointer.htm

当我遇到这个,

Token::~Token() {
if(this == nullptr) { return; }
.... }

这根本没有道理。"这"指的是什么?如果它指向"token",它是如何做到的?

this只是指向函数所属类的当前对象的指针。它更像是一个隐藏的参数,传递给c++类的每个NON-STATIC方法。它只是指向一个类的特定实例以及对象所拥有的所有数据。举个例子:

Token::~Token() {
if(this == nullptr) { return; }
.... }

This只是指向Token类的析构函数的对象。

if(this == nullptr) { return; }

更具体地说,上面的if语句是查看对象的实例是否等于null引用。

不鼓励在c++中使用NULL检查this。当在指向类的NULL指针上调用方法时,this可能为NULL。一个例子:

Token* token = nullptr;
token->~Token();

代码应该首先检查令牌是否为NULL,而不是在析构函数中检查NULL。

Token* token = nullptr;
if (token)
  token->~Token();

此链接解释您的问题:http://www.viva64.com/en/b/0226/

谷歌和Foxit是如何在pdfium:中解决这个问题的

https://bugs.chromium.org/p/pdfium/issues/detail?id=4https://groups.google.com/forum/#!topic/pdfium/8mTxtmle4ok