http://d.puremagic.com/issues/show_bug.cgi?id=6857
--- Comment #24 from Walter Bright <bugzi...@digitalmars.com> 2012-05-03 18:50:03 PDT --- (In reply to comment #23) > (In reply to comment #22) > >> If you mean whether a given call is legal, then you could by the > >> same argument insist that called method names must be resolved in > >> the context of the virtual type. > > > > And they are. It's what the vtbl[] is for. > > ??? > > class A {} > > class B : A { > void foo() {} > } > > void main() { > A a = new B; > a.foo(); > } > > You're claiming that this code is legal, and the penultimate line resolves to > B's foo method??? No, I'm not. This thread is about overriding, not introducing, functions. > I'm surprised that the classic OOP spec covers the behaviour of contracts at > all. But maybe I just need to read up on it. Betrand Meyer's Object Oriented Programming. You can get it on amazon for $5.99. It's the definitive classic on the topic. The behavior with contracts is just another aspect of the contravariance and covariance of derived objects. -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: -------