主要内容

调用方法的 this 指针为空

成员函数调用期间 this 指针为空

描述

此项针对 this 指针解引用的检查用于确定该指针是否为 NULL

示例

全部展开

#include <stdlib.h>
class Company {
 public:
  Company(int initialNumber):numberOfClients(initialNumber) {}
  void addNewClient() {
    numberOfClients++;
  }
 protected:
  int numberOfClients;
};

void main() {
 Company* myCompany = NULL;
 myCompany->addNewClient();
}

在此示例中,指针 myCompany 被初始化为 NULL。因此,当使用该指针来调用成员函数 addNewClient 时,调用方法的 this 指针为空将生成红色错误。

更正 - 使用有效的地址初始化指针

一种可能的更正方法是使用 new 运算符以有效的内存地址来初始化 myCompany

#include <stdlib.h>
class Company {
 public:
  Company(int initialNumber):numberOfClients(initialNumber) {}
  void addNewClient() {
    numberOfClients++;
  }
 protected:
  int numberOfClients;
};

void main() {
 Company* myCompany = new Company(0);
 myCompany->addNewClient();
}

检查信息

组:C++
语言:C++
缩写:NNT