diff options
Diffstat (limited to 'Examples/test-suite/d/director_string_runme.1.d')
-rw-r--r-- | Examples/test-suite/d/director_string_runme.1.d | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/Examples/test-suite/d/director_string_runme.1.d b/Examples/test-suite/d/director_string_runme.1.d new file mode 100644 index 000000000..4e750791a --- /dev/null +++ b/Examples/test-suite/d/director_string_runme.1.d @@ -0,0 +1,46 @@ +module director_string_runme; + +import Integer = tango.text.convert.Integer; +import director_string.A; + +void main() { + char[] s; + + auto c = new director_string_A("hi"); + for (int i=0; i<3; ++i) { + s = c.call_get(i); + if (s != Integer.toString(i)) throw new Exception("director_string_A.get(" ~ Integer.toString(i) ~ ") failed. Got:" ~ s); + } + + auto b = new director_string_B("hello"); + + s = b.call_get_first(); + if (s != "director_string_B.get_first") throw new Exception("call_get_first() failed"); + + s = b.call_get(0); + if (s != "director_string_B.get: hello") throw new Exception("get(0) failed"); +} + +class director_string_B : A { +public: + this(char[] first) { + super(first); + } + override char[] get_first() { + return "director_string_B.get_first"; + } + + override char[] get(int n) { + return "director_string_B.get: " ~ super.get(n); + } +} + +class director_string_A : A { +public: + this(char[] first) { + super(first); + } + override char[] get(int n) { + return Integer.toString(n); + } +} |