C++Primer 6.2节——参数传递 续处理命令行选项和含有可变形参的函数
1、给main函数传递实参 ①main函数可以是空形参,也可以有两个(可选的)形参。 ②当我们需要给main函数传递实参时,用户可以通过设置一组选项来确定函数所要执行的操作。如: int main(int argc,char *agrv[]) {…} //第二个形参是一个数组,其元素是指向C风格字符串的指针,第一个形参agrc表示数组中字符串的数量。 ③最后一个指针之后的元素值保证为0。 ④具体传递实参的方法参照:向main函数传递实参
2、含有可变形参的函数 ①若实参的类型不同,我们可以编写一种特殊的函数,即可变参数模板,细节P618。 ②若所有的实参类型都相同,可以传递一个名为initializer_list的标准库类型。 (1)initializer_list形参 Ⅰ、intializer_list是一种标准库类型,用于表示某种特定类型的值的数组。 Ⅱ、initializer_list是一种模板类型,定义它的对象时,必须说明列表中所含元素的类型,其对象的元素永远是常量值。如: initializer_list< string > s1: Ⅲ、如果函数的实参数量未知但是全部实参的类型都相同,我们可以使用initializer_list类型的形参。 Ⅳ、如果想向initializer_list形参中传递一个值的序列,则必须把序列放在一堆花括号内。
③含有initializer_list形参的函数也可以同时拥有其他形参。
④省略符形参