#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 приводит к красной ошибке.
Исправление - инициализация указателя с допустимым адресомОдной из возможных корректировок является инициализация 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();
}