如果我有class* object = NULL;
,我将object
传递给function(class* arg){arg = new class();}
,object = new class()
会这样做吗?
我问,因为指针只是一个地址,对吧?因此,如果我将NULL指针作为参数传递并为其分配新对象,则地址将从零更改,并且原始指针不会指向新对象,对吗?
答案 0 :(得分:2)
在函数内部,arg
将指向新对象;但是当你传递指针的副本时,一旦该函数结束,它将不再可访问,并且object
将不会指向它(但仍然为NULL)。
您需要传递对象(class*&
)的引用或对象(class**
)的指针,以启用函数来修改它,
答案 1 :(得分:0)
这是对的。您通过值object
传递给函数。因此,更改函数中的值对object
没有影响。如果您希望该函数能够更改object
,则需要将引用或指向object
的指针传递给函数。