【发布时间】:2020-01-15 03:49:47
【问题描述】:
考虑一下我有这个功能:
foo(int &x1, int x2);
有人这样称呼它:
int main(){
int x = 1;
foo(x, x);
}
当你只看主函数时,你看不到第一个值是通过引用传递的,第二个是通过值传递的。为什么没有一些额外的语法来“避免这个问题”?示例:
int main(){
int x = 1;
foo(*x, x);
}
我真的不知道,为什么 C++ 语法是这样指定的。我可以想象这背后有一个原因,我无法理解,因为我之前没有看到一个好的用例。
编辑: 可能的重复问题是处理传递引用和传递指针。我的问题是,为什么传递引用和传递值确实具有相同的被调用者语法
【问题讨论】:
-
foo(*x, x);将是一个重大变化。有趣的是,我认为foo(x&, x);不会。至于手头的问题,我认为现在为时已晚 - 是的,我同意在调用站点知道是否可以修改参数会很好。 -
@RoQuOTriX,只是和你打了个交道,对那次投反对票不满意,我有点激动,对此感到抱歉,希望没有不好的感觉。
-
@anastaciu 正如我们德国人所说:更聪明的人会屈服。那就是你,我们进行了讨论,没有你的侮辱或道歉的东西,但也许我必须道歉,太
-
好文明的风格,你们俩。很高兴读到这样的东西。玩得开心。