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

passing a null pointer of an object into a function

本文关键字:函数 空指针 对象      更新时间:2023-10-16

如果我有class* object = NULL;,并且我将object传递给function(class* arg){arg = new class();},那么object = new class()呢?

我问

是因为指针只是一个地址,对吧?所以如果我传递一个NULL指针作为参数,并分配一个新的对象给它,地址将从零改变,原来的指针将不会指向新的对象,对吗?

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

你需要传递一个对象的引用(class*&),或者一个指向对象的指针(class**),以使函数能够修改它,

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