#include <stdio.h>
void nonep(void )
{
printf( "hello world" );
}
class a
{
public:
void (*ap)(void);
void ap_init( void (*p)(void))
{
this->ap = p;
}
};
class b : public a
{
public:
void none(void)
{
printf( "hello worldn" );
}
b()
{
this->ap_init(none);
}
};
int main()
{
b bb;
bb.ap();
return 0;
}
a클래스에있는 함수포인터를 b클래스에있는 none함수를 가르키게 하고싶은데
불가능하나? 저 클래스없는 함수는 정상적으로 되는데 다른 클래스에있는건 안되네
다른 방법을 찾아야 되나?
void nonep(void )
{
printf( "hello world" );
}
class a
{
public:
void (*ap)(void);
void ap_init( void (*p)(void))
{
this->ap = p;
}
};
class b : public a
{
public:
void none(void)
{
printf( "hello worldn" );
}
b()
{
this->ap_init(none);
}
};
int main()
{
b bb;
bb.ap();
return 0;
}
a클래스에있는 함수포인터를 b클래스에있는 none함수를 가르키게 하고싶은데
불가능하나? 저 클래스없는 함수는 정상적으로 되는데 다른 클래스에있는건 안되네
다른 방법을 찾아야 되나?
이게 왜 함수포인터 질문이지?
클래스 멤버함수는 this포인터를 받아야하잖아
방법은 클래스 멤버함수를 static으로 선언하는것
오오오 땡큐 이것때문에 지금 몇시간째 고민중이었는지 모르겠다 this포인터를 받는것이랑 무슨 관계가 있는거지? 어떤 포인터가 어떤 값을 가르키고 있다고해서 다른 포인터가 그값을 못가르키는것은 아니잖아?? 아 설마 저쪽 함수 인자로 들어갈때 거기서 오류생기나?
아닌데 복잡하네
void b::none() 함수는 c스타일로 말하면 다음과 같은 함수인거다. void none(b* this);
static void b::none() 함수는 c스타일로 말하면 void none(); 함수인거고
ㅇㅇ 그렇게 이해하면 되겠다 땡큐