Sma*_*ash 1 c++ class pass-by-reference
让我说我有一个类"A"和这个功能:
void initializationFunction(A* classPointer)
{
...
...
classPointer = new A(.....);
}
Run Code Online (Sandbox Code Playgroud)
我写:
A* classPointer;
Run Code Online (Sandbox Code Playgroud)
然后我将此指针传递给此函数:
initializationFunction(classPointer);
Run Code Online (Sandbox Code Playgroud)
除非我在函数声明中通过引用传递它,否则这将不起作用:
void initializationFunction(A*& classPointer);
Run Code Online (Sandbox Code Playgroud)
我认为引用传递是非指针类型变量.我的意思是你不需要通过引用传递数组...
谢谢你的解释:)
是的,这是真的.你必须通过引用传递参数(或者你可以传递A**).
但最好的解决方案是以A这样的方式编写构造函数,以便您首先不需要此函数.也就是说,无论你在这个函数中做什么,你都应该在构造函数本身中这样做.
但是,如果您无法编辑该类,则可以执行以下操作:
A *initializationFunction()
{
A *obj = new A(.....);
//...
return obj;
}
A *classPointer = initializationFunction();
Run Code Online (Sandbox Code Playgroud)
在我看来,这种方法比你的方法更好.
注意我没有更改函数的名称和其他变量.我想这不是帖子的重点.但我相信你会想要真正的代码更好的名字.
| 归档时间: |
|
| 查看次数: |
17899 次 |
| 最近记录: |