728x90
< Ellipsis, 생략부호 >
매개변수가 정해지지 않았으면 좋겠다... 할때 생략부호 ' ... ' 을 사용한다. va_list로 생성, va_start와 va_end로 시작과 끝을 설정한다.
- 코드 -
#include <iostream>
#include <cstdarg> // for ellipsis
using namespace std;
double findAverage(int count, ...){ // 파라미터로 받아올 argument의 갯수
double sum = 0;
va_list list; // list를 생성한다.
va_start(list, count); // list의 개수에 해당하는 count를 넘겨준다.
for(int arg = 0; arg < count; ++arg) // 필요한 계산을 해준다.
sum += va_arg(list, int); // 어떤 타입으로 사용할지는 정헤져있어야 한다.
va_end(list);
return sum / count;
}
int main()
{
cout << findAverage(1, 1, 2, 3, "hello", 'c') << endl;
cout << findAverage(3, 1, 2, 3) << endl;
cout << findAverage(5, 1, 2, 3, 4, 5) << endl;
cout << findAverage(10, 1, 1, 2, 3, 4, 5) << endl;
return 0;
}
- 출력 결과 -
728x90
'[C,C++]' 카테고리의 다른 글
[C,C++ 개념정리] Member initializer list (0) | 2020.04.08 |
---|---|
[C,C++ 개념정리] Constructors(생성자) (0) | 2020.04.07 |
[C,C++ 개념정리] encapsulation, access specifiers & functions (0) | 2020.04.05 |
[C,C++ 개념정리] 객체지향의 시작 (2) | 2020.04.02 |