2014-09-24 2 views
0

Мой друг дал мне отрезала кода с просьбой объяснить:Имя типа передается в качестве параметра в C++

typedef struct bia_motor { 
    unsigned int attributes123; 
} type_bia_motor; 

typedef struct bia { 
    int attributes456; 
} type_bia; 

type_bia_motor *constructor() 
{ 
    return ALLOCATION(type_bia_motor); 
} 

Я понимаю общую идею, но я не могу себе представить, параметр функции распределения. Я должен этот код:

type_bia_motor* ALLOCATION(???) { 
    return new type_bia_motor; 
} 

Более подробно:

void* ALLOCATION(TYPENAME) { 
    // IF type_bia_motor IS NEEDED 
     return new type_bia_motor; 
    // IF type_bia IS NEEDED 
     return new type_bia; 
} 

Любая идея, как РАСПРЕДЕЛЕНИЕ должен выглядеть?

Видимо это (код Марко А. & Долан):

+0

Возможно, макрос, все может случиться .. мы должны догадаться? –

+0

Да! Макро - хорошая идея! Мне просто интересно, как это можно реализовать. – VladRia

+1

Это C++? Guessing '#define ALLOCATION (X) (новый X)'. Кстати, это ужасно. –

ответ

1

Моя догадка макрос:

#define ALLOCATION(type) (new type) 

type_bia_motor *constructor() 
{ 
    return ALLOCATION(type_bia_motor); 
} 

это, безусловно, работать, хотя это ужасный стиль кодирования и практика.

Отказ от ответственности: пусть это будет просто упражнение мысли и никогда не писать такой код для серьезного проекта.

Смежные вопросы