将对象的空指针传递给函数
passing a null pointer of an object into a function
如果我有class* object = NULL;
,并且我将object
传递给function(class* arg){arg = new class();}
,那么object = new class()
呢?
是因为指针只是一个地址,对吧?所以如果我传递一个NULL指针作为参数,并分配一个新的对象给它,地址将从零改变,原来的指针将不会指向新的对象,对吗?
在函数内部,arg
将指向新对象;但是,当您传递指针的副本时,一旦函数结束,它将不再可访问,并且object
将不再指向它(但仍然指向NULL)。
你需要传递一个对象的引用(class*&
),或者一个指向对象的指针(class**
),以使函数能够修改它,
正确。您将object
按值传递给函数。因此,改变函数中的值对object
没有影响。如果您希望函数能够更改object
,则需要将指向object
的引用或指针传递给函数。
相关文章:
- 函数向量_指针有不同的原型,我可以构建一个吗
- 关于 c++ 函数中指针赋值的简单问题
- 在函数内初始化无符号字符指针将返回空指针
- 空指针传递给lambda函数不再为空
- 我多么应该将空指针传递给c ++函数,就像C#中的IntPter.Zero一样
- VC++ HeapAlloc 内部函数提供空指针
- 在函数中分配后的空指针
- 函数参数中的空指针与对象
- 传递给函数的 C++ 空指针
- 传递给函数调用后的空指针sqlite3句柄
- 如何在函数C++中返回空指针
- 为什么Boost.Cconcept通过空指针调用析构函数
- 如何使函数不使用STL容器参数(类似于空指针)
- 当超出函数时,指针设置为空指针
- 为什么在空指针上调用解构函数?
- 将对象的空指针传递给函数
- 什么更快:检查空指针或调用空函数
- 将向量作为空指针传递给函数
- 函数参数中的空指针
- 如何最好地处理对象初始化C++:空构造函数或指针