visual studio 2010에서 클래스 함수포인터 만드는 법을 모르겠습니다.
글쓴이: lmk378 / 작성시간: 목, 2012/09/06 - 5:26오후
다음과 같이 작성했습니다.
typedef struct
{
int a;
void (Animal::*func)(void);
}Entry
class Animal
{
public:
Entry *table;
void run();
void jump();
}
Animal::Animal()
{
Entry tmp[2] =
{
{1, run},
{2, jump}
}
table = tmp;
}
void Animal::run()
{
cout << "run" << endl;
}
void Animal::jump()
{
cout << "jump" << endl;
}
int main()
{
Animal ani;
ani.table[0].func();
return 0;
}
이런식의 프로그램을 작성하려 하는데 어디를 수정해야 할까요?
Forums:
그냥 구문오류만 고치면 이정도 되겠네요. class
그냥 구문오류만 고치면 이정도 되겠네요.
아 추가로 혹시 클래스 객체로 호출하는 문법 말고
아 추가로 혹시 클래스 객체로 호출하는 문법 말고
Animal 클래스 내부에서 함수포인터로 호출하는 방법 어떻게 되나요?
main에 있던걸 동일하게
main에 있던걸 동일하게 호출하려면,
나
하면 되겠네요.
답변 감사합니다^^
답변 감사합니다^^
답변 감사합니다. 많은 도움이 되었습니다.^^ 약간
답변 감사합니다. 많은 도움이 되었습니다.^^
약간 첨언을 하자면 위의 생성자코드에서 tmp를 static으로 선언 해주어야 합니다.
table이 포인터인지 보질 못했네요. table이
table이 포인터인지 보질 못했네요. table이 고정적이라고 한다면 table을 포인터로 하지 말고 바로 static 배열로 선언하는것도 괜찮을것 같아요.
댓글 달기