Null this-pointer calling method

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, Null this-pointer calling method производит красную ошибку.

Коррекция — Инициализирует указатель допустимым адресом

Одна возможная коррекция должна инициализировать myCompany с действительным адресом памяти с помощью new оператор.

#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