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 }