= Templated Inheritance = ''Part of'' TemplatesCategory == Description == This allows the program to decide what a class will inherit from. Note that if your inheriting from an interface the templated class must already implement the needed. == Example == {{{ #!d import std.stdio; void main() { (new C!(A)).sayWhat; (new C!(B)).iSaidIt; (new D!(A)).sayWhat; (new D!(B)).iSaidIt; } interface iA { void sayWhat(); } interface iB { void iSaidIt(); } class A : iA { void sayWhat() { writefln("Say what?"); } } class B : iB{ void iSaidIt() { writefln("You know what I said."); } } class C(T) : T {} class D(T) : T { void sayWhat() { Stdout("Say what?").newline; } void iSaidIt() { Stdout("You know what I said.").newline; } } }}} == Output == {{{ Say what? You know what I said. Say what? You know what I said. }}}