C++:无法从指向类的指针调用成员

标签 c++ class pointers crash member

编辑: 我对我的程序做了一些修改,我发现我面临的问题与此类指针无关,事实上我的语法是正确的。我感谢所有的回复,但我纠正了这个问题。 谢谢大家。

所以我搜索了这个网站和谷歌,但似乎找不到任何东西。据我所知,我已经习惯了正确的语法,但也许我遗漏了一些小东西。

所以基本上,我已经声明了一个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/

相关文章:

c++ - 如何在循环外设置初始值? C++

c++ - 为什么我的 C++ 磁盘写入测试比使用 bash 的简单文件复制慢得多?

java "redundant"包装类?

class - 在 Fortran 中将模块分解为多个文件

c++ - char "string"功能未更新

c++ - 在 openGL 中打印一个红色三角形

android - 如何读取类(class)的返回 - android

c - 应该使用 `!var` 还是 `var == NULL`?

c++ - 指针没有传递它们的值

c++ - 如何使用非指针属性的析构函数