编辑: 我对我的程序做了一些修改,我发现我面临的问题与此类指针无关,事实上我的语法是正确的。我感谢所有的回复,但我纠正了这个问题。 谢谢大家。
所以我搜索了这个网站和谷歌,但似乎找不到任何东西。据我所知,我已经习惯了正确的语法,但也许我遗漏了一些小东西。
所以基本上,我已经声明了一个Player类型的类对象,然后创建了一个Player *类型的指针,并将类对象赋值给它。现在,当我尝试从指针调用成员函数时,我的程序崩溃了。我不知道问题出在哪里。有什么想法吗?
类定义如下:
class Player
{
public:
Player(int x, int y);
//~Player();
//int hitPoints;
void printHP() {cout << hitPoints << endl;}
int xCord;
int yCord;
protected:
private:
int hitPoints;
};
//constructor
Player::Player(int x, int y)
{
hitPoints = 100;
xCord = x;
yCord = y;
}
这里是我声明指针并尝试调用成员函数的地方。
Player hero(5, 5);
Player * playerPtr;
playerPtr = &hero;
playerPtr->printHP();
程序编译正常,但立即崩溃。但是,当我直接从类对象中调用成员函数时它会起作用,如下所示:
hero.printHP();
最佳答案
您的程序看起来是正确的。 playerPtr 是从相同的上下文中调用的吗?即,您没有将它传递给不同的函数?
关于C++:无法从指向类的指针调用成员,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21195351/