728x90
반응형
c++은 객체 이름만으로 호출가능한 함수를 만들 수 있으며 이와 관련된 호출방법을 지원한다.
이 방법을 사용하기 위해서 준비된 키워드가 operator ()이다.
객체 이름의 함수를 클래스 정의시 바로 적시할 수 없으므로 이런 키워드가 고안된 듯 하다.
아래에 관련 사례에 대해 소스를 작성해 보았다.
관련해서 방문자들에게 도움이 되길 바란다.
#include <iostream>
using namespace std;
class wowcat
{
public:
// 정의 방법1
int operator() (int iArg1, int iArg2)
{
int iNum = iArg1 + iArg2;
return iNum;
}
// 정의 방법2
int operator() (int, int, int);
};
// 정의 방법2
int wowcat::operator() (int iArg1, int iArg2, int iArg3)
{
int iNum = iArg1 + iArg2+ iArg3;
return iNum;
}
int main()
{
wowcat Obj1;
cout << "사용 방법 1-1 : " << Obj1.operator()(1, 2) << endl;
cout << "사용 방법 1-2 : " << Obj1(2, 3) << endl << endl;
cout << "사용 방법 2-1 : " << Obj1.operator()(1, 2, 3) << endl;
cout << "사용 방법 2-2 : " << Obj1(2, 3, 4) << endl << endl;
// 함수 포인터 방법
int (wowcat:: * fp1)(int, int) = &wowcat::operator(); // 1
int (wowcat:: * fp2)(int, int, int) = &wowcat::operator(); // 2
cout << "함수 포인터 1 : " << (Obj1.*fp1)(10, 100) << endl;
cout << "함수 포인터 2 : " << (Obj1.*fp2)(10, 100, 1000) << endl;
return 0;
}
728x90
'기술자료 > C C++' 카테고리의 다른 글
개인 프로젝트용 파일 (연습문제/도서관리/원라인) (0) | 2013.04.04 |
---|---|
링커 스크립트 (0) | 2009.09.11 |
Pcap 함수 파라미터 (0) | 2009.08.24 |
[賢彬] C로 C++/C#/JAVA처럼 OOP를 할 수 있나요? (1) | 2009.08.20 |
[클란심] 문자열 대치 프로그램 (0) | 2009.08.17 |
과제 - C - 문자열 대치 프로그램 (0) | 2009.08.14 |
[賢斌] vector<벡터> - 4 (0) | 2009.08.13 |
[賢斌] vector<벡터> - 3 (0) | 2009.08.13 |