2016-09-12 154 views
1

如果我有class* object = NULL;,并且我将object转换为function(class* arg){arg = new class();},那么object = new class()将一个对象的空指针传递给一个函数

我问,因为指针只是一个地址,对吧?所以如果我传递一个NULL指针作为参数并为它指定一个新对象,地址将从零改变,并且原始指针不会指向新对象,那么正确?

回答

2

函数内部,arg将指向新的对象;但是当您通过指针的副本时,一旦该功能结束,它将不再可用,并且object不会指向它(但仍为NULL)。

您必须通过任一个的提及到对象(class*&),或指向对象(class**),以使函数来修改它,

0

这是正确的。您按值通过了object。所以改变函数的值对object没有影响。如果您希望函数能够更改object,则需要将参考或指针传递给函数object

相关问题