Public variables inside interfaces
Mariusz Gliwiński
alienballance at gmail.com
Sat Apr 30 05:22:09 PDT 2011
I like the possibility of abandoning () in function calls in D, so we
can firstly make attribute public and then if implementation changes,
smoothly change it into function:
call:
<code>
auto a = new A();
writeln("Size is " +a.size);
auto b = new B();
writeln("Size is " +b.size);
class A {
public int size = 0;
}
class B {
public int size() { return 0; }
}
</code>
Although, if I'd like to make interface Sizeable, it's impossible to
treat attribute and method equally:
<code>
interface Sizeable {
/*
int size; // Error: variable Sizeable.size field not allowed in
interface
int size(); //
*/
class A : Sizeable {
public int size = 0; // Error: Does not implements int size()
}
class B : Sizeable {
public int size() { return 0; }
}
</code>
Is it possible to make it work?
Best regards,
Mariusz Gliwiński
More information about the Digitalmars-d
mailing list