这将是那些超级简单的问题之一,但我真的无法提醒自己为什么会这样。所以:我有一个简单的构造函数,我在其中初始化一些变量,在这个例子中是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
的情况下尝试了它,但它无论如何都没有用。这对我来说似乎很准确,因为我想知道这个对象的位置。
答案 0 :(得分:1)
你是构造函数:
player::player()
{
int position = 1;
}
声明一个名为position
的局部变量并设置该变量,而不是按预期设置类成员。
尝试:
player::player()
{
position = 1;
}