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 |