我正在将最初使用C ++的程序转换为Java,因为我对C ++没什么经验,并且遇到了一些问题。
struct indx{ int i,j; };
void increment(indx place) {
place.i+=5;
place.j+=5;
}
当C ++通过方法传递结构并进行修改时,它们是否在其余代码中维护?在Java术语中,修改方法中的结构是否与修改克隆相同?
答案 0 :(得分:2)
您按价值传递place
,这意味着increment
正在您的结构副本上运行,而不是原始副本。更改为引用传递,如下所示:
void increment(indx& place) {
...
}
该函数将在原始结构上运行,任何修改都将持续回调用者。