如果我有class* object = NULL;
,並且我將object
轉換爲function(class* arg){arg = new class();}
,那麼object = new class()
?將一個對象的空指針傳遞給一個函數
我問,因爲指針只是一個地址,對吧?所以如果我傳遞一個NULL指針作爲參數併爲它指定一個新對象,地址將從零改變,並且原始指針不會指向新對象,那麼正確?
如果我有class* object = NULL;
,並且我將object
轉換爲function(class* arg){arg = new class();}
,那麼object = new class()
?將一個對象的空指針傳遞給一個函數
我問,因爲指針只是一個地址,對吧?所以如果我傳遞一個NULL指針作爲參數併爲它指定一個新對象,地址將從零改變,並且原始指針不會指向新對象,那麼正確?
函數內部,arg
將指向新的對象;但是當您通過指針的副本時,一旦該功能結束,它將不再可用,並且object
不會指向它(但仍爲NULL)。
您必須通過任一個的提及到對象(class*&
),或指向對象(class**
),以使函數來修改它,
這是正確的。您按值通過了object
。所以改變函數的值對object
沒有影響。如果您希望函數能夠更改object
,則需要將參考或指針傳遞給函數object
。