C에서 C로 코드를 변환하는 중입니다. C에서 Object factory에 해당하는 패턴이 있습니까?C++ 대신 C 객체 팩터얼
다음 소스 코드를 고려하십시오. 매개 변수 (int type
)를 기반으로 ObjectFactory
() 함수는 페디큐어 유형의 구조체에 대한 void 포인터를 반환해야합니다. 어떻게 함수를 반환 한 후 포인터를 가질 수있는 방식으로 구조체를 인스턴스화 할 수 있습니다.
typedef struct {
unsigned int a;
unsigned int b;
unsigned int c;
} CThings ;
typedef struct {
unsigned int d;
unsigned int e;
unsigned int f;
} CPlaces ;
void * ObjectFactory(int type) {
switch(type) {
case 5 : {
return ??? CPlaces ;
break;
}
case 35 : {
return ??? CThings ;
break;
}
default: {
// unknown type
return NULL ;
}
}
return NULL ;
}
int _tmain(int argc, _TCHAR* argv[])
{
void * p = ObjectFactory(5);
// Do soemthing with the pointer.
CPlaces * places = (CPlaces*) p ;
places->d = 5 ;
places->e = 6 ;
places->f = 7 ;
return 0;
}
이것은 C++에서 C 로의 변환으로, 특히 눈에 띄지 않는 것 같습니다. 분명히 무의미한 활동에 참여한 이유를 설명해 주시겠습니까? –
@ AlfP.Steinbach +1 : 당신이 쓴 최고의 코멘트. –
'return (void *) new CPlaces(); ' –