【发布时间】:2012-01-17 22:26:02
【问题描述】:
我正在尝试将两个多维数组作为参考参数传递给 C++ 中的函数。
原型是这样写的:
void func(char (&foo)[4][4], char (&bar)[4][4]);
我的问题是第二个参数没有作为参考参数传递,但第一个参数可以。如果我改变它们的位置——所以 (&foo)[4][4] 是第二个,反之亦然—— foo 不会作为引用传递,但 bar 会。
但是,如果我添加第三个参数,第二个参数将作为引用传递。
如何在不添加另一个无用参数的情况下解决此问题?
【问题讨论】:
-
“它没有作为参考传递”是什么意思?
-
显示您的呼叫代码。我很确定错误就在那里。
-
它还有什么被传递的?复制 ?在c ++中没有办法。即使您认为自己传递的是副本,C++ 也会将数组作为引用传递。
-
请发布一些演示问题的实际代码(请参阅sscce.org)。
-
发布整个相关的事情并展示您无法更改的内容。我很确定这个函数能够改变它的调用者记忆。