如果我有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
。