6.28:在error_msg函数的第二个版本中包含ErrCode类型的参数,其中循环内的elem是什么类型?
Ans:elem的类型是通过编译器推断出来的,其类型是const string &类型。使用引用是为了避免拷贝过长的string类型字符串。
6.29:在范围for循环中使用initializer_list对象时,应该将循环控制变量声明成引用类型吗?为什么?
Ans:引用的优势是在于可以直接使用引用,从而达到操作引用绑定的对象,以及为了避免拷贝时过于复杂。由于initializer_list对象中列表的元素都是const对象,不能修改,所以没必要使用引用类型的控制变量,但是若是string类型或者其他容器类型的对象,执行拷贝操作,有时候会拷贝过长的string对象,所以使用引用是为了避免拷贝。