构造函数中的类成员的不同值以及它之外的值

时间:2016-09-29 08:29:28

标签: c++

这将是那些超级简单的问题之一,但我真的无法提醒自己为什么会这样。所以:我有一个简单的构造函数,我在其中初始化一些变量,在这个例子中是int,我还有一个方法可以帮助我打印出这个int。但是错误的是在构造函数中我有正确的int值,但在外面我得到一些随机的东西。为什么会发生这种情况以及如何预防呢?

这是player.cpp:

#include "player.h"
#include <iostream>

player::player()
{
    int position = 1;
}

void player::get_pos()
{
    std::cout << "You position is: " << this->position << std::endl;
}

和player.h

#ifndef PLAYER_H
#define PLAYER_H


class player
{
    int position;
public:
    player();
    void get_pos();
};

#endif // PLAYER_H

我在没有this->position的情况下尝试了它,但它无论如何都没有用。这对我来说似乎很准确,因为我想知道这个对象的位置。

1 个答案:

答案 0 :(得分:1)

你是构造函数:

player::player()
{
    int position = 1;
}

声明一个名为position的局部变量并设置该变量,而不是按预期设置类成员。

尝试:

player::player()
{
    position = 1;
}