将对象的空指针传递给函数

时间:2016-09-12 01:12:57

标签: c++ function pointers object

如果我有class* object = NULL;,我将object传递给function(class* arg){arg = new class();}object = new class()会这样做吗?

我问,因为指针只是一个地址,对吧?因此,如果我将NULL指针作为参数传递并为其分配新对象,则地址将从零更改,并且原始指针不会指向新对象,对吗?

2 个答案:

答案 0 :(得分:2)

在函数内部,arg将指向新对象;但是当你传递指针的副本时,一旦该函数结束,它将不再可访问,并且object将不会指向它(但仍然为NULL)。

您需要传递对象(class*&)的引用或对象(class**)的指针,以启用函数来修改它,

答案 1 :(得分:0)

这是对的。您通过值object传递给函数。因此,更改函数中的值对object没有影响。如果您希望该函数能够更改object,则需要将引用或指向object的指针传递给函数。