Если бы это были ваши существующие классы:
class Person
{
public:
Person(const string& name): name_(name) {}
void name() { cout << "name: " << name_ << endl; }
protected:
string name_;
};
class Singer
{
public:
Singer(const string& song, int year): song_(song), year_(year) {}
void song() { cout << "song: " << song_ << ", " << year_ << endl; }
protected:
string song_;
int year_;
};
Тогда вы могли бы играть вокруг с этой концепцией в C++ 11
template<typename... Mixins>
class Mixer: public Mixins...
{
public:
Mixer(const Mixins&... mixins): Mixins(mixins)... {}
};
использовать его следующим образом:
int main() {
Mixer<Person,Singer> dylan{{"Dylan"} , {"Like a Rolling Stone", 1965}};
dylan.name();
dylan.song();
}
Является ли класс шаблонов удовлетворительным вашим спросом? – lulyon
Hm. Не похоже на микшину, как «создать новый тип, улучшив другой тип». То есть, его поведение не является экземпляром. – Aleph
@lulyon да, основываясь на количестве кода. Я бы хотел простое использование –