Please post next time in D.learn. In D it is still like in other C like languages:
class A {
public:
this() { writeln("A CTor"); }
}
A a = new A(); create a new object of type A and print "A CTor"
Because D has no standard copy CTor for classes, you must declare
your own:
class A {
public:
this() { writeln("A CTor"); }
this(ref const A a) { writeln("A copy CTor"); }
}
which is called with:
A a = new A();
A ac = new A(a); // <- calls copy CTor
