c++11可变参数的使用

 1 #include<iostream>
 2 #include<cstdio>
 3 #include<cstdlib>
 4 using namespace std;
 5 
 6 int add(int a, int b, ...)
 7 {
 8     return a + b;
 9 }
10 
11 template<typename T, typename...>
12 class A
13 {
14 private:
15     T data;
16 public:
17     A() :data(0){}
18     A(T d) :data(d){}
19     ~A(){}
20 public:
21     void dis()
22     {
23         cout << data << endl;
24     }
25 };
26 
27 void tprintf(const char* format)
28 {
29     cout << format;
30     return;
31 }
32 
33 template<typename T, typename...Args>
34 void tprintf(const char* format, T t, Args... args)
35 {
36     for (; *format != '\0'; format ++) {
37         if (*format == '%'){
38             cout << t;
39             tprintf(format + 1, args...);
40         return;
41         }
42         cout << *format;
43     }
44     return;
45 }
46 int main()
47 {
48     cout << add(1, 2) << endl;
49     cout << add(1, 2, 3, 4) << endl;
50     A<int> obj1(2);
51     A<int, char> obj2(3);
52     obj1.dis();
53     obj2.dis();
54     tprintf("% world!% \n", "hello", "123");
55     cin.get();
56     return 0;
57 }
原文地址:https://www.cnblogs.com/mahaitao/p/5489197.html