In D, class objects are implicitly pointers. So try the following code. class Parent {} class Child : Parent {} void myFunc(Parent obj) { import std.stdio; writeln("got ", obj); } void main() { Child myChild = new Child(); myFunc(myChild); }