Null this-pointer calling method

this во время вызова представителя функции указатель имеет значение NULL

Описание

Эта проверка на this dereference указателя определяет, является ли указатель 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