oop 지원되는 언어 쓰면 편하긴 한데... c 는 자작하는 손맛이 있음. 이렇게 위로.
다른 언어 쓰고 싶은데 호환성 생각하면 c 를 쓸 수 밖에 없음.
그래서 c 를 하두 많이 쓰다보니 급기야는 oop 흉내를 ㅋㅋ
tian_object_new (sizeof (StructType));
이런 식으로 하면 될 거 같기도 함.
#ifndef __TIAN_OBJECT_H__
#define __TIAN_OBJECT_H__
#ifdef __cplusplus
extern "C" {
#endif
typedef struct _TianObject TianObject;
struct _TianObject
{
int ref_count;
TianObject * (* ref) (TianObject *object);
void (* unref) (TianObject *object);
void (* finalize) (TianObject *object);
};
void tian_object_ref (TianObject *object);
void tian_object_unref (TianObject *object);
#ifdef __cplusplus
}
#endif
#endif /* __TIAN_OBJECT_H__ */
#include
#include "tian-object.h"
#include
void
tian_object_ref (TianObject *object)
{
object->ref_count++;
}
void
tian_object_unref (TianObject *object)
{
object->ref_count--;
if (object->ref_count == 0)
{
if (object->finalize)
object->finalize (object);
free (object);
}
}
코로나 땜에 할 것두 없구 심심한테 object 라이브러리나 하나 만들어야겠다
vulkan api도 거의 oop 느낌이던
대댓이 아니라 글댓인데 실수
요즘은 함수형이 대세인데 왜 거꾸로감
그런짓 하지 말고 걍 헤더 - 소스파일 구조 이용하는걸로 만족하자 - return 0;
C OOP 괜찮게 생각합니다.
내부는 C++로 짜고 호환성을 위해 밖에 내보내는 타입만 extern C 하는건 어캐생각하세요
다음부터 그렇게 해야겠어요
러스트도 그렇게 가능하다면 러스트를 배우고 싶네요
본인이 편하다면 C언어 만으로 구현하는것도 나쁘지는 않아보이는데... 짜면서 불편한 점은 있나요? 그리고 러스트도 되요
리눅스에서도 C로 oop따라하는 코드 많이 찾아볼 수 잇음