2016-09-12 198 views
1

如果我有class* object = NULL;,並且我將object轉換爲function(class* arg){arg = new class();},那麼object = new class()將一個對象的空指針傳遞給一個函數

我問,因爲指針只是一個地址,對吧?所以如果我傳遞一個NULL指針作爲參數併爲它指定一個新對象,地址將從零改變,並且原始指針不會指向新對象,那麼正確?

回答

2

函數內部,arg將指向新的對象;但是當您通過指針的副本時,一旦該功能結束,它將不再可用,並且object不會指向它(但仍爲NULL)。

您必須通過任一個的提及到對象(class*&),或指向對象(class**),以使函數來修改它,

0

這是正確的。您按值通過了object。所以改變函數的值對object沒有影響。如果您希望函數能夠更改object,則需要將參考或指針傳遞給函數object

相關問題