2014-01-09 2 views
-5

Можно ли автоматически генерировать что-то вроде этого? Я хочу конкретных членов только один раз и создать три класса (они похожи, но ...)C++ класс с теми же элементами с разными типами

class recipe{ 
public: 
    int timeToPrepare; 
    std::string name; 
} 

class recipeQuery{ 
public: 
    baseQuery<int> timeToPrepare; 
    baseQuery<std::string> name; 
} 


class recipeScheme{ 
public: 
    schemeItem<int> timeToPrepare; 
    schemeItem<std::string> name; 
} 
+0

Сформировать как? В каком контексте вы предполагаете необходимость генерации кода? Как шаг до компиляции? Вам нужен код на C++, или вы хотите, чтобы скрипт или инструмент генерировали код? –

ответ

0
template<template<typename> class T> 
class recipe{ 
public: 
    T<int> timeToPrepare; 
    T<std::string> name; 
}; 

typedef recipe<baseQuery> recipeQuery; 
typedef recipe<schemeItem> recipeScheme; 
5

Что-то вроде этого?

template <class T1 = int, class T2 = std::string> class recipe { 
    T1 timeToPrepare; 
    T2 name; 
}; 

typedef recipe< baseQuery<int>, baseQuery<std::string> > recipeQuery; 

typedef recipe< schemeItem<int>, schemeItem<std::string> > recipeQuery; 
Смежные вопросы