请问我以前是否曾问过这个问题,但是,我有一个已声明并初始化为nullptr的指针,当我在其上调用一个函数时,它可以正常工作,并且该函数按预期工作,但我不是真的了解它为什么有效。我的理解是,必须有一个对象的实例才能在其上调用函数,但是此指针已初始化为nullptr,因此不应有该对象的实例,对吗?
当时,当我编写这段代码时,我什至没有意识到我会在nullptr上调用此函数,当我向我的讲师展示它时,他说它不起作用,因为没有实例可以调用该函数。功能。
//an example from my cpp file
int main()
{
Organism* ptr = nullptr; //pointer of type organism
cout << ptr->checkCell();
return 0;
}
//from the Organism class header file
bool checkCell()
{
return (this == nullptr);
}
我创建了一个单独的cpp文件以对其进行测试,并且仍然以相同的方式工作。 我只是想知道发生了什么事,内部缺少更好的单词,为什么会起作用。