繁体   English   中英

C ++对象数组+带有引用和指针的参数

[英]c++ object array + argument with reference and pointer

我不明白第二个论点。 到底是什么? 最重要的是,他(程序员)使用它来创建一个新的Object对象数组,最后是num(变量)大小。

void expand(const Object &s, Object* &children, int &num)
{
   ...
   children = new Object[num]; // <----
}

从右到左阅读:

当达到* ,将其替换为。
当您到达& ,请通过引用替换它。

因此, children将是:指向Object的指针的引用。

第二个参数:Object *&children Object *表示子级是指向Object类型的指针。 &防止收到子对象的副本来调用作用域,并让我们直接使用参数变量,因此在更改子对象时:

children = new Object[num];

您可以在调用范围内更改参数变量,并在expand函数返回后,您可以访问:

new Object[num]

通过传递给扩展函数的参数变量。

通过引用传递参数是从函数接收信息的另一种方式(它还有其他用法)。

它的:

指向Object的指针的引用

原因是因为它动态分配内存,所以他可能希望对children更改反映在函数的调用者中(可能是main() )。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM