C++基础编程----含有可变形参函数

省略符形参

省略符形参仅仅是用于C和C++通用的类型,特别注意的是,大多数类类型的对象在传递时给省略符形参时是无法正确拷贝的。

省略号的优先级别最低,所以在函数解析时,只有当其它所有的函数都无法调用时,编译器才会考虑调用省略号函数的。
举例:
#include<iostream>               //  要处理不定参数的函数要包含头文件:#include <stdarg.h> 
#include<stdarg.h>
using namespace std;


void ArgFunc(char* str,...);
int main(int argc,char **argv)
{
ArgFunc("dfsa","fsda",23,35.4);
system("pause");
return 0;
}
void ArgFunc(char *str,...)
{
va_list ap;                      //先定义一个参数列表变量:va_list ap; 
va_start(ap,str);            //  确定不定参数所在的位置,这里第二个参数是本函数的第一个形参          

char* ss=va_arg(ap,char*);      //  获取参数并指明类型,如:va_arg(ap, char*);获取第一个参数,并指明类型为char*
int i=va_arg(ap,int);
double dd=va_arg(ap,double);


cout<<ss<<"  "<<i<<"  "<<dd<<endl;
}

你可能感兴趣的:(C++基础编程----含有可变形参函数)