override toString

Qian Xu qian.xu at funkwerk-itk.com
Thu Dec 3 02:01:29 PST 2009


Hi All,

I want to print some object information for debugging. But the name of class 
is incorrect. I do not know why.


module test;

class A {
  char[] data;
  public char[] toString() {
    return "<" + this.classinfo.name + ": " + data + ">";
  }
}

class B: A {
  char[] data2;
  public override char[] toString() {
    return "<" + this.classinfo.name + ": " + super.toString + ", " + data2 
+ ">";
  }
}

auto b = new B;
b.data = "hello";
b.data2 = "world";
Cout(b.toString); // <test.B: <test.B: hello>, world>


The expected result should be:
<test.B: <test.A: hello>, world>

But the actual result is:
<test.B: <test.B: hello>, world>







More information about the Digitalmars-d-learn mailing list