May 21, 2023 Interface questions | ||||
---|---|---|---|---|
| ||||
see comments in the code below. they are my questions. But feel free to ignore the comment about 'private(this)' ;-) interface Ship { @safe void setSpeed(int speed); @safe int getSpeed(); } class PirateShip : Ship { private int speed = 0; // If only I had 'private(this)' !! // how do I know this method is actually an implementation of an interface method // and not a method specific to this class? public void setSpeed(int speed) { this.speed = speed; } // how do I know this method is actually an implementation of an interface method // and not a method specific to this class? public int getSpeed() { return speed; } } class MerchantShip : Ship { private int speed = 0; // If only I had 'private(this)' !! // how do I know this method is actually an implementation of an interface method // and not a method specific to this class? // AND ... how come I can change a @safe interface method into a @trusted one? public @trusted void setSpeed(int speed) { int *s = void; // Mmmm.. and my interface all had @safe methods!! this.speed = speed; } // how do I know this method is actually an implementation of an interface method // and not a method specific to this class? // AND ... how come I can change a @safe interface method into a @trusted one? public @trusted int getSpeed() { int *s = void; // Mmmm.. and my interface all had @safe methods!! return speed; } } |
Copyright © 1999-2021 by the D Language Foundation