아래와 같은 예제 코드에서 함수 포인터를 자신의 맴버 변수에 담는데,
자신 맴버함수 앞에 네임스페이스와 "&"를 꼭 붙여 줘야지만, 함수 포인터 변수에
들어가더라구요.
굳이 자기 함수인데 왜 네이스페이스가 들어가는지와,
&를 붙이게 되면 함수포인터의 주소값을 넣는다는건데...
이 부분이 이해가 잘 안됩니다.
Code: Select all
class AAA
{
public : //함수
AAA()
{
pCalcFunc[0] = &AAA::Add;
pCalcFunc[1] = &AAA::Sub;
}
int Add( const int& _nLhs, const int& _nRhs )
{
return ( _nLhs + _nRhs );
}
int Sub( const int& _nLhs, const int& _nRhs )
{
return ( _nLhs - _nRhs );
}
typedef int (AAA::*PFUNCTION)( const int&, const int& );
PFUNCTION pCalcFunc[2];
};
int _tmain(int argc, _TCHAR* argv[])
{
AAA a;
printf( "%d", a.Add(10, 10) );
// 결과 값: 20
return 0;
}