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
저코드는 은닉혹은 의존성이 제거되지 않는데...
----------------------------------------------------------------------------
어라... 이 글 아직 명예의 전당 안 올라갔나요?
어라... 이 글 아직 명예의 전당 안 올라갔나요?
------------------------------------------------------------
이 멍청이~! 나한테 이길 수 있다고 생각했었냐~?
광란의 귀공자 데코스 와이즈멜 님이라구~!
페이지
댓글 달기