멤버함수포인터 썸네일형 리스트형 타이머 만들기 이번에도 멤버함수 실습과 관련해서 타이머 제작을 해볼게요 #include #include "ecourse.hpp" using namespace std; using namespace ecourse; void foo(int id) { cout 더보기 스레드 만들기 이번에는 지난번에 배운 멤버함수포인터를 응용하여 스레드를 만들어 보겠습니다. 일단 가장 간단하게 스레드를 만들어 볼건데요 우선 스레드를 사용하기 위해서 Windows.h를 포함시킵니다. #include #include using namespace std; DWORD __stdcall foo(void* p) { return 0; } int main() { CreateThread(0,0, foo, //스레드로 수행할 함수 (void*)"A", //스레드 함수로 보낼 인자. 0,0); } 간단한 코드인데요 DWORD나 __stdcall은 윈도우즈에서 사용하는것들인데 중요한게 아니니 넘어갈게요 메인 함수에 CreateThread를 보면 3번째 4번째 패러미터가 중요합니다. 쉽죠 하지만 이건 객체지향인 C++이 .. 더보기 멤버함수 포인터 C++은 함수 포인터가 있습니다. 포인터가 주소를 저장한 변수이고 함수또한 특정 주소에 저장된 값이죠. 그러므로 함수포인터는 그 함수의 주소를 가리키고 있는것입니다 멤버 함수 포인터는 클래스의 멤버 함수를 가르키고 있는 포인트 변수 겠지요 그럼 이게 뭐가 다를까요? 지난 번에 이야기했듯이 멤버함수는 첫번째 숨겨진 패러미터로 this를 가지고 있습니다. 일반 함수포인터에 멤버함수를 넣으면 패러미터가 달라서 에러가 뜨게 됩니다. 그럼 this가 없는 Static 함수는 대입이 가능한가요? 넵! Static함수는 대입이 가능합니다. 이제부터 아래코드를 보시죠 // 핵심 1. 일반함수 포인터에 멤버함수의 주소를 담을 수 없다. // 핵심 2. 일반 함수 포인터에 static 멤버함수의 주소를 담을 수 있다. /.. 더보기 이전 1 다음