[英]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.