Notice
Recent Posts
Recent Comments
Link
«   2025/05   »
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
Archives
Today
Total
관리 메뉴

Typing diary

함수 포인터 본문

C, C++

함수 포인터

Jcon 2022. 8. 17. 21:40
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
#include <iostream>
#include<functional> //function을 사용하기 위한 헤더
using namespace std;
 
class ExClass
{
public:
    int i = 10;
    
    //객체가 여러개여도 멤버함수의 주소는 1개다.
    void Print() {           //  ┏>멤버변수를 메모리에 1개만 올라가지만 this를 통해 각 객체의 값을 받아 올 수 있다.
                             //  ┃  (this->는 생략 가능)
        cout << "함수 실행" <<  this-><< endl;
    }
};
 
int Sum(int var1, int var2)
{
    return var1 + var2;
}
 
int main()
{
    ExClass ex;
 
    //함수 포인터 
    //함수도 변수와 마찬가지로 주소가 존재하고 그 주소를 함수 포인터를 통해 받아올 수 있다.
    int(*pFunc)(intint); //(반환타입)(*포인터이름)(인자타입);
    pFunc = Sum;
    cout << pFunc(13);  //4가 출력되는 것을 확인 할 수 있다.
    
    //멤버함수의 주소를 받는 방법.
    void (ExClass::*pFunc2)() = &ExClass::Print;
    (ex.*pFunc2)();
 
    //function을 이용한 함수 포인터
    function<int(int,int)> func;     //function<리턴타입(인자타입)>
    func = bind(Sum,placeholders::_1,placeholders::_2);
 
    //멤버함수
    function<void()> func2;
    func2 = bind(&ExClass::Print, &ex);  
}
cs

'C, C++' 카테고리의 다른 글

에디안  (0) 2022.11.16
Inf, Nan  (0) 2022.11.16
파일입출력 fwrite,fread  (0) 2022.08.17
상속, 가상함수, 순수가상함수  (0) 2022.08.17
조정자(Manipulator)  (0) 2022.08.17