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 }