C++ 클래스에서 함수포인터 사용하는거 질문좀..
글쓴이: 레모네이드 / 작성시간: 수, 2007/01/24 - 9:27오후
윈도우즈용하고 리눅스용하고 둘다 잘 동작하는 소프트웨어를 만드는 중에
다음 코드 부분에서 닷넷은 컴파일 되고 G++은 컴파일이 않되네요...
g++은 클래스의 함수에 대한 포인터를 사용하지 못하는 건지...
#includeclass myclass { public: virtual void f() { printf("myclass function f\n"); } }; typedef void (myclass::*ftype)(); int main(){ myclass c; ftype f = (ftype)myclass::f; (c.*f)(); return 0; }
g++에서 정적함수가 아니라면서 컴파일 거부....음....
뭔가 컴파일옵션 주는게 있나요?...
Forums:
? ? ftype f =
로 해보세요.
감사합니다...
닷넷하고...조금은 다르군요....vc는 & 붙이거나 않붙이거나 상관없이 그냥 스탈데루 쓰라고 하던데..
gcc는 엄격하군요...오늘 하루는 구현 방법생각하느라 오전 보내고 닷넷으로 처리확인하구..
오후에는 gcc가능할까 해봤는데..않돼더라구요..왠종일 고생했는데.. & 하나 차이군요...
덕분에 오늘은 맘편히 잘수 있겠습니다...감사..~
Managed C++
닷넷의 C++은 Managed C++이라고 해서
표준 C++을 확장한 문법을 쓴다고 하는 걸 본 적이 있습니다.
.Net?
Visual Studio 2003 버젼을 말씀하시는 건가요?
본문의 코드는 Visual Studio 2005 에서도 더이상 사용할 수 없는 스타일입니다.
http://msdn2.microsoft.com/en-us/library/ms177253.aspx
맨 처음에 나오는 "Pointer-to-members now require qualified name and &" 부분을 읽어보세요.
링크가 걸려있는 "Compiler Error C3867" 부분도 읽어보시구요.
댓글 달기