멤버함수 포인터 사용예시
#include <iostream>
using namespace std;
class Person
{
public:
void print(int i)
{
cout << i << endl;
}
};
int main()
{
using FuncType = void (Person::*)(int);
FuncType fn = &Person::print;
//위의 코드는 아래의 두 형태와 같다.
//
//1.
//typedef void (Person::* FuncType)(int);
//FuncType fn = &Person::print;
//
//2.
//void (Person:: * fn)(int) = &Person::print;
Person person;
(person.*fn)(1);
}
결과
1
funtional을 인클루드하여 하는 방법. 결과는 동일하다.
#include <iostream>
#include <functional>
using namespace std;
class Person
{
public:
void print(int i)
{
cout << i << endl;
}
};
int main()
{
function<void(Person*, int)> func = &Person::print;
Person person;
func(&person, 1);
}
print() 멤버함수가 static일 때. 결과는 동일하다.
#include <iostream>
using namespace std;
class Person
{
public:
static void print(int i)
{
cout << i << endl;
}
};
int main()
{
void (*fn)(int) = &Person::print;
fn(1);
}
Author And Source
이 문제에 관하여(멤버함수 포인터 사용예시), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@hksdods/멤버함수-포인터-사용예시저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)