Typing diary
함수 포인터 본문
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->i << endl; } }; int Sum(int var1, int var2) { return var1 + var2; } int main() { ExClass ex; //함수 포인터 //함수도 변수와 마찬가지로 주소가 존재하고 그 주소를 함수 포인터를 통해 받아올 수 있다. int(*pFunc)(int, int); //(반환타입)(*포인터이름)(인자타입); pFunc = Sum; cout << pFunc(1, 3); //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 |