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

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

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

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

 posted on 2018-08-15 18:20  linlh  阅读(222)  评论(0编辑  收藏  举报