: () 괄호 연산자를 제공해서, 함수처럼 사용하는 것을 말함.
operator()(인자 타입.)
: 함수 객체의 경우, 다른 연산자와는 다르게 호출을 하기위해 () 괄호를
하나 더 작성함.
#include <iostream>
int add(int a, int b)
{
return a + b;
}
struct Plus
{
int operator()(int a, int b)
{
return a + b;
}
};
int main()
{
Plus p;
int n = p(1, 2); // ÇÔ¼ö ó·³ »ç¿ë
// p.operator()(1,2)
std::cout << n << std::endl;
// a + b; // a.operator+ (b)
// a - b; // a.operator-(b)
// a(); // a.operator()()
// a(1, 2);//a.operator()(1,2);
}
힌트
1) URand 라는 클래스를 만들자.
2) 중복되는 수가 나오지 못하게 char 배열 만들자.
3) rand() 함수를 사용하자.
4) 초기셋팅을 위해서 srand(time(0)) 을 사용하라.
5) 초기화를 하는 reset 함수도 만들어라.
정답코드는
: 블로그에 있음.
내가 작성한 코드
: 함수 내의 static 변수를 만들어서 하면 되지 않음??!!
-> static을 초기화하는 함수를 만들수 없지만,
--> 함수 객체 클래스의 경우, 초기화하는 함수도 만들 수 있다.
int rr()
{
static int arr[10];
//arr 처리 -> 초기화를 따로 해주는 함수를 만들 수 없음.
return rand() % 10;
}