home > working > C/C++ > Q & A

 


Name  
   초보 
Subject  
   [re] C++에서의 함수포인터 ...
#include <iostream>
using namespace std;

class T1 {
public:
        void test(int a)
        {
                cout << "test" << endl;
        }
        static void test2(int a)
        {
                cout << "test2" << endl;
        }
};

void test(int a)
{
}


// 클래스함수의 호출시에는 내부적으로
// T t
// t.test( 호출하는 객체의 주소(this), 10 );
// 이런식으로 호출을 합니다.
// 그래야.. 어떤 객체(instance)의 함수호출인지 인식해서 해당
// 멤버변수의 데이터도 잘 컨트롤할수 있겠죠.

// 반대로 전역함수는 이런 과정이 필요없겠죠.
// 한가지더.. 클래스의 정적(static)함수는 객체의 생성과는 상관없음으로
// 전역함수와 마찬가지로 사용할수 있습니다.


void main()
{
        // 결론적으로 이렇게 사용하시면 될것 같습니다.

        void (T1::*fptr)(int) = T1::test;        
        T1 t1;
        (t1.*fptr)(10);        

        // static일경우
        void (*fptr2)(int) = T1::test2;
        (*fptr2)(10); // fptr2(10)
}

Prev
   화일 입력

이상
Next
   VC++에서 소켓을 이용하여 데이터 전송시에..

풀밭


 
   C++에서의 함수포인터 ...

곤지
2004/09/08 2805

     [re] C++에서의 함수포인터 ...

초보
2005/08/25 2621
 
     [re] C++에서의 함수포인터 ...

조규남
2004/09/08 2558
           
Copyright 1999-2018 Zeroboard / skin by JiYoo / edit by Mystous