함수 포인터를 쓰는 부분이 있는데
int func(int i, string str, ...);
이런 전역 함수였음. 이걸 클래스에 넣고 싶어서
class Derived : public Base {
int func(int i, string str, ...);
};
이렇게 해 놓고 static으로 caller를 하나 만들고 그놈이 func를 호출하게 고침.
Derived::func(int i, string str, ...)에는 this가 첫 번째 인수로 들어가기 때문이라나~
암튼 여기까진 성공했고...
다중상속을 지원하게 하고 싶어서
class Derived : public virtual Base {
int func(int i, string str, ...);
};
하는 식으로 했더니 caller->func(...)가 실행이 안 됨. <----왜?????
* 바꾼 건 virtual 밖에 없는듸 그럼 범인은 mangling?
virtual 개객기. 사실 다중상속 필요도 없는데 그냥 없앨까.
자바는 C++보다는 참 편한 것 같다. virtual이 기본이니 얼마나 좋음?
못알아먹겠다... 공부더해야지...