2013-07-15 348 views
1

自從我完成C++後,我已經有一段時間了。我有以下結構:關於結構的困惑

struct sPage { U16 _; }; 
typedef sPage tPage; 

但是當我嘗試這樣做:

tPage pagenumber = 0; 

我得到以下錯誤:「沒有合適的構造存在於從int轉換爲S頁面」。我究竟做錯了什麼?

+0

使用大括號初始化'TPAGE頁面編號= {0};' – greatwolf

+0

更容易,'t第頁面編號{};' – chris

+4

你不能說'tPage'是一個整數,而它包含一個整數。這就是你如何使用它,作爲一個聚合而不是標量。 –

回答

1

你需要花括號初始化:

tPage pagenumber = {0}; 

,或使自己的構造函數:

struct sPage 
{ 
    U16 _; 

    sPage(U16 val) : _(val) { } 
}; 
+0

這樣的隱式構造函數可能會有意想不到的效果,但它們可能值得注意。 –

3

你忘了括號,同時初始化。做到像

tPage pagenumber = { 0 };