C로 C++ 흉내내기?
글쓴이: handrake / 작성시간: 토, 2006/01/28 - 10:25오후
안녕하세요. 실제 프로그래밍에서는 전혀 쓸모가 없을지도 모르는 것이지만 순수히 궁금해서 질문드립니다.
여기 kldp에서도 C로 C++를 흉내낼수 있다는 글을 많이 보았는데요, 어떻게 하면 될지 생각해 보고
나름대로 클래스를 구현해보았습니다.
#include<stdio.h> void *this = 0; void inc_one(); void dec_one(); typedef void (*void_func)(void); typedef struct my_str { int iLen; void_func inc; void_func dec; }my_str; my_str* init_my_str() { my_str *new_my_str = (my_str*) malloc(sizeof(my_str)); new_my_str->inc = &inc_one; new_my_str->dec = &dec_one; new_my_str->iLen = 0; return new_my_str; } void inc_one() { ((my_str*)this)->iLen++; } void dec_one() { ((my_str*)this)->iLen--; } main() { my_str *a = init_my_str(); this = a; printf("a->iLen = %d\n", a->iLen); a->inc(); printf("a->iLen = %d\n", a->iLen); }
여기서 궁금한 점은 저렇게 this=a; 를 매번 지정해주지 않아도 어떤 struct에서 불렀는지
알 수 있는 방법이 있는지 입니다. 이렇게 하는것보다 더 좋은 방법이 있으면 제시해 주시면 고맙겠습니다 ^^
Forums:
[quote="dondek"][quote="돼지군"][b][size=18
저코드는 은닉혹은 의존성이 제거되지 않는데...
----------------------------------------------------------------------------
어라... 이 글 아직 명예의 전당 안 올라갔나요?
어라... 이 글 아직 명예의 전당 안 올라갔나요?
------------------------------------------------------------
이 멍청이~! 나한테 이길 수 있다고 생각했었냐~?
광란의 귀공자 데코스 와이즈멜 님이라구~!
페이지
댓글 달기