2015-06-27 46 views
0

我在初始化該類問題的std :: istream的引用初始化:類具有

class Player{ 
    /// 
    std::istream ∈ 
    /// 
}; 

嘗試這樣的:

Player::Player():in(cin){ 
    /// 
} 

任何人都可以點我如何完成正確的方向這個? 此外,初始化後,我可以說像

stringstream ss("test"); 
Player p; 
p.in = ss; 

在此先感謝

+1

您只能初始化引用,並且以後不能更改它們。您可以做的最多的是爲正在引用的內容分配新值,但不是引用本身。 – aslg

回答

0

您還沒有宣佈構造改變的參考,只有定義它。
聲明構造並設置公衆:

class Player{ 
public: 
    Player(); // You need to declare the constructor 
    std::istream ∈ 
}; 

Player::Player():in(cin) 
{} 

int main() 
{ 
    Player p; 
} 

我可以改變的參考?

不,您不能更改引用,只能引用正在引用的值。

+0

如果構造函數是私有的,爲什麼它不工作? –

+0

@NicholasPaxton你想公開它可以輕鬆地從主要訪問它。 –