dan*_*jar 1 c++ pointers scope reference function
函数是否可以更改作为参数传递的指针的目标,以使效果保持在函数外部?
void load(type *parameter)
{
delete parameter;
parameter = new type("second");
}
type *pointer = new type("first");
load(pointer);
Run Code Online (Sandbox Code Playgroud)
在这个最小的例子中,是否会pointer指向第二个分配对象?如果没有,我怎么能得到这种行为?
更新:为了澄清我的意图,这里是我将使用的代码,如果参数将是普通类型而不是指针.在这种情况下,我只会使用引用.
void load(type ¶meter)
{
parameter = type("second");
}
type variable("first");
load(&variable);
Run Code Online (Sandbox Code Playgroud)
这很容易,但我尝试用指针做同样的事情.
没有.
parameter将得到pointer这种情况下的价值副本.所以这是一个新的变量.您对其所做的任何更改仅在功能范围内可见.pointer保持不变.
你必须the pointer通过参考传递
void load(type *& parameter)
^
{
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
716 次 |
| 最近记录: |