C++Primer 6.2节——参数传递 续处理命令行选项和含有可变形参的函数

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形参的函数也可以同时拥有其他形参。

④省略符形参

你可能感兴趣的:(c++)