Re: Bypass the protection level

2015-03-12 Thread Namespace via Digitalmars-d-learn
On Wednesday, 11 March 2015 at 15:22:43 UTC, Ali Çehreli wrote: On 03/11/2015 04:40 AM, Namespace wrote: I can call draw on Drawable, because it is declared public and I cannot call draw on Sprite because it is declared protected (this is already a bit weird, why can I redeclare the

Re: Bypass the protection level

2015-03-11 Thread Ali Çehreli via Digitalmars-d-learn
On 03/11/2015 04:40 AM, Namespace wrote: I can call draw on Drawable, because it is declared public and I cannot call draw on Sprite because it is declared protected (this is already a bit weird, why can I redeclare the interface method draw as protected?) It is the same in C++. but I can

Re: Bypass the protection level

2015-03-11 Thread Namespace via Digitalmars-d-learn
Could it be that this is intentional and has always worked?

Bypass the protection level

2015-03-11 Thread Namespace via Digitalmars-d-learn
Let's say we have these files: module Foo.Graphic.Drawable; interface Drawable { void draw(bool); } module Foo.Graphic.Sprite; import Foo.Graphic.Drawable; class Sprite : Drawable { protected: void draw(bool enable) { import core.stdc.stdio :