digitalmars.D.learn - Abstract attribute ?
- Lucien (15/15) May 17 2016 Hello,
- Adam D. Ruppe (15/16) May 17 2016 Because it cannot be virtual and cannot be overridden. This is
- Lucien (2/18) May 17 2016 ok, thank you.
Hello,
Why a attribute cannot be abstract ?
How can I force the redefinition of an attribute if the class
inherits from abstract class ?
Example:
----------------
abstract class A
{
// Error: variable attr cannot be abstract
protected abstract int attr;
}
class B : A
{
protected override int attr = 10;
}
May 17 2016
On Tuesday, 17 May 2016 at 16:52:01 UTC, Lucien wrote:Why a attribute cannot be abstract ?Because it cannot be virtual and cannot be overridden. This is different than Python, but in line with other C-style languages (and the lower level implementation) Use a property function instead to achieve this. abstract class A { protected property abstract int attr(); // a getter for attr protected property abstract attr(int); // a setter for attr, if desired } class B : A { override property int attr() { return 0; } // implementation }
May 17 2016
On Tuesday, 17 May 2016 at 16:58:30 UTC, Adam D. Ruppe wrote:On Tuesday, 17 May 2016 at 16:52:01 UTC, Lucien wrote:ok, thank you.Why a attribute cannot be abstract ?Because it cannot be virtual and cannot be overridden. This is different than Python, but in line with other C-style languages (and the lower level implementation) Use a property function instead to achieve this. abstract class A { protected property abstract int attr(); // a getter for attr protected property abstract attr(int); // a setter for attr, if desired } class B : A { override property int attr() { return 0; } // implementation }
May 17 2016








Lucien <lucien.perregaux gmail.com>