2012-10-30 72 views
2

我想學習C++和我下面this online book,雖然大多是好,有時我覺得事情沒有那麼很好地解釋。分配與函數聲明

在163頁,談到鏈表時,他顯示了這種代碼:

p_enemies = EnemySpaceShip* addNewEnemyToList(p_enemies); 

它不完全充滿與語境,但我相信p_enemies將是一個聲明指針,addNewenemyToList會一個定義的函數。我想知道的是該表達式如何工作,並且是這個正確的代碼。它對我來說沒有意義,因爲它看起來像一個方法聲明,返回類型就在那裏,但是在賦值後它就在那裏。這是什麼?

+2

這可能是工作的唯一方法是,如果'EnemySpaceShip'是一個對象,在這種情況下,它會通過函數調用的結果相乘。你確定這個函數的結果沒有大括號嗎? – chris

+0

順便說一句,在線圖書的鏈接目前是鏈接到您的Gmail中的附件,所以我們無法查看它:P –

+3

@MikeTrusov,似乎是這樣:http://www.scribd.com/doc/ 105834938 /跳進-c – chris

回答

1

該代碼片段沒有意義。

這是我能看到這個片段作爲有效的唯一辦法:

p_enemies = (EnemySpaceShip*) addNewEnemyToList(p_enemies); 

結果: 如果p_enemies是類型EnemySpaceShip的指針,這將分配「addNewEnemyToList」 - 函數的返回值將返回的值轉換爲EnemySpaceShip指針後,將其轉換爲p_enemies。 如果不是,該行將失敗。