#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();
}