참 생각하는거 보면 웃기다.

어떨때 쓰이는지는 감이 온다.(사실 이 감이 .. 전체적인 프로그래밍에서 나는 사용 된다. 예전 TV볼때 이런 감들은 경험을 통해서 늘릴수가 있으며, 알고리즘으로 움직이는것보다 더 빠른 속도를 낸다고 한다. 단점이라면 이 감은 안쓰다 보면 퇴화가... - 뇌의 구조중에서)


함수-객체의 등장배경을 추측해보면,
1. C++을 OOP적인 코딩을 제공하기 위해서 operator 연산이 가능하게 됨으로써 등장하게 된거 같다.

특징으로는.. 함수 객체 자체가 객체이기 때문에,
1. 함수에 특정 상태, 속성을 넣을수 있게 되었다.(물론 C스타일도 static을 사용하면 가능하지만 함수사용의 제약이 있다. 예를 들어 500개의 속성을 가진 함수를 만들려면 함수가 500개여야 한다;)

2. 1번으 경우 때문에, 보다 OOP적인 코딩이 가능해 진다.

3. 함수를 동적 메모리 할당해서 쓰고 버릴수 있다.(객체이기 때문이다. 1번과 3번이 가장 마음에 든다)

4. 템플릿과 함수객체를 혼합해서 사용하면, 보다 다양한 함수객체가 가능해진다.

5. 일반 함수보다 빠르다고 하는데, 테스트는 못해봤다.

장점
1. 장점은 특징일테고..

단점
1. 코드가 길어 진다.
2. 최초 구조적인 코딩을 해야지만, 복잡해지지 않는다.
(무분별 사용은 오히려 함수객체가 느려진다고 한다)


나의 사용 사례
1. 컨테이너에 정렬기준으로 사용한다.
2. 심심할때 사용한다.

미래의 사용 사례
OOP적인 코딩을 보다 잘하게 된다면,
1. 각각의 상태관리자 형태로 쓰거나 최적화를 위해서 쓰게 될것 같다.
2. 함수의 매개변수로도 사용하면, 가독성이 좋아지고, 사용이 편해질것 같다.
신고
posted by 농사를 짓는 게임 프로그래머 최익필

댓글을 달아 주세요