Just messing around with templates. It works, just wondering if anyone could see any use for what I'm doing. ;)Code:class Human { /* No Implementation, yet */ };
class Male : public Human {
public:
void Speak() { cout << "I am a man." << endl; }
};
class Female : public Human {
public:
void Speak() { cout << "I am a woman." << endl; }
};
class Adult : public Human {
public:
void Speak() { cout << "I am an adult." << endl; }
};
class Child : public Human {
public:
void Speak() { cout << "I am a child." << endl; }
};
template <class Gender, class Age>
class Individual : public Gender, public Age {
public:
void Speak() {
Gender::Speak();
Age::Speak();
}
};
int main() {
Individual<Male, Adult> man;
Individual<Female, Adult> woman;
Individual<Female, Child> girl;
man.Speak();
cout << endl;
woman.Speak();
cout << endl;
girl.Speak();
return 0;
}