2017-01-02 32 views
0

我正在做一些修改为即将到来的测试和过这个问题就来了:为什么只是参考而不是价值?

Question

在标记方案的回答说:

Answer

不过,我虽然这将是反过来。我认为FoodList会因为食物改变而被价值和食物所通过。你能解释为什么它是相反的吗?

更新:答案可能是错误的,标记方案中有许多错误。

回答

0

我唯一的解释是作者混淆了“按价值”和“通过参考”。

但是,如果性能起到任何作用,则应该将FoodList作为参考进行传递,因为复制引用通常要比复制整个字符串便宜。一些像C++这样的语言可以让你将参考标记为常量。这将阻止子程序修改其值。

此外,在大多数编程语言中,子程序称为函数并具有返回值。将参数仅用于输入以及子程序输出的返回值是一种很好的做法。 (要知道为什么,这是很好的做法,搜索术语“副作用”和“引用透明”。)

在C++函数可以声明如下:

std::list<std::string> Make_List(const std::string& foodList); 
相关问题