2016-09-29 112 views
0

这将是那些超简单的问题之一,但我真的不能提醒自己为什么会这样。所以:我有一个简单的构造函数,在这个构造函数中我初始化了一些变量,在这个例子中是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

您的构造函数:

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

正在申报称为position一个局部变量和设置,而不是设置类成员预期。

尝试:

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

OMG ..这就是为什么我讨厌我的回采学习。菜鸟的错误一如既往。谢谢 ;) –