练习6.28、6.29

6.28:在error_msg函数的第二个版本中包含ErrCode类型的参数,其中循环内的elem是什么类型?

Ans:elem的类型是通过编译器推断出来的,其类型是const string &类型。使用引用是为了避免拷贝过长的string类型字符串。

6.29:在范围for循环中使用initializer_list对象时,应该将循环控制变量声明成引用类型吗?为什么?

Ans:引用的优势是在于可以直接使用引用,从而达到操作引用绑定的对象,以及为了避免拷贝时过于复杂。由于initializer_list对象中列表的元素都是const对象,不能修改,所以没必要使用引用类型的控制变量,但是若是string类型或者其他容器类型的对象,执行拷贝操作,有时候会拷贝过长的string对象,所以使用引用是为了避免拷贝。

原文地址:https://www.cnblogs.com/Dark-King/p/9483111.html