我正在为即将进行的测试做一些修改,并遇到了这个问题:
商标计划的答案是:
但是,我会反过来说。鉴于食物已经改变,我认为FoodList将通过参考价值和食物传递。你能解释为什么它反过来了吗?
更新:答案可能是错误的,商标计划中存在一些错误。
答案 0 :(得分:0)
我唯一的解释是作者混淆了价值"和"参考"。
但是,如果性能起任何作用,FoodList
也应该作为参考传递,因为复制引用通常比复制整个字符串要便宜。某些语言(如C ++)允许您将引用标记为常量。这将阻止子程序修改其值。
此外,在大多数编程语言中,子程序称为函数并具有返回值。优良作法是仅将参数用于输入和子程序输出的返回值。 (要找出为什么这是一种好的做法,请搜索术语"副作用"以及"参考透明度"。)
在C ++中,函数可以声明如下:
std::list<std::string> Make_List( const std::string& foodList );