On 2011-08-29 01:58:30 +0000, Jonathan M Davis <jmdavisp...@gmx.com> said:
On Monday, August 29, 2011 04:50:09 hhaammaadd wrote:
import std.stdio;
class employee {
void work() {
writeln("I am employee");
}
}
class manager: employee {
void work() {
writeln("I am manager");
}
}
void main() {
employee e1 = new manager;//here
e1.work();
manager m3 = new manager;//--|here
employee *e2 = &m3;//--------|
e2.work();
}
Pointers are not polymorphic in D. Class references are, but if you have a
pointer to a class, it assumes that the type is exactly that type and
determines its function calls at compile time rather than at runtime.
Actually, a pointer to a class is really a pointer to a reference to an
object, since the reference is always with a class type. So "employee
*" is in reality a pointer to a reference to an employee object.
--
Michel Fortin
michel.for...@michelf.com
http://michelf.com/