2016-09-29 118 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 ..這就是爲什麼我討厭我的回採學習。菜鳥的錯誤一如既往。謝謝 ;) –

相關問題