در C++11
میتونی از Initialize_list استفاده کنی به این شکل :
#include <iostream>
#include <initializer_list>
#include <string>
void print(std::initializer_list<std::string> mList)
{
for(auto i:mList)
std::cout<<i<<"\n";
}
int main()
{
print({"name","last name","2222"});
}
یا از variadic templates ها استفاده کن:
#include <iostream>
#include <string>
void print(){}//end
template<class T,class... Types>
void print(const T& val,const Types& ... args)
{
std::cout<<val<<std::endl;
print(args ... );
}
int main()
{
print("name",123,'s',222,"last name","2222");
}
یا با استفاده stdargs
va_list list;
va_start(list,arg1)
var_arg(list,type_of_arg1) //to in khat voroodi haye func khoondee mishan
va_end(list)
#include <iostream>
#include <stdarg.h>
#include <string>
void print(std::string arg1, ...)
{
va_list LIST;//sakhtan sakhtar shamel etelaat voroodi haye func
va_start(LIST, arg1);//moshakhas kardan list va mahale shoroo
for (std::string str = arg1; str != "end" ; str = va_arg(LIST, char*))//az va_arg baraye raftan be voroodi badi func estefade mishe
std::cout<<str<<"\n";
va_end(LIST);//bastan list
}
int main()
{
print("name","last name","end");
}