实现可变参数
1 #include <iostream> 2 #include <cstdarg> 3 using namespace std; 4 5 template <typename T> 6 T SUM(int count, T data1...) 7 { 8 va_list arg_ptr;//参数列表的指针 9 va_start(arg_ptr, count);//限定从arg_ptr开始 10 T sum(0); 11 12 for (int i = 0; i < count; i++) 13 { 14 sum += va_arg(arg_ptr, T); 15 } 16 17 va_end(arg_ptr);//结束 18 19 return sum; 20 } 21 22 void main() 23 { 24 std::cout << SUM(5, 1, 2, 3, 4, 10) << std::endl;//20 25 26 std::cout << SUM(7, 1.1, 2.1, 3.1, 4.1, 5.1, 6.1, 7.1) << std::endl;//28.7 27 28 system("pause"); 29 }
时间: 2024-10-08 22:09:16