Function is not implemented.
Agustin
agustin.l.alvarez at hotmail.com
Tue Nov 26 09:52:27 PST 2013
On Tuesday, 26 November 2013 at 17:50:12 UTC, Ali Çehreli wrote:
> On 11/26/2013 09:32 AM, Agustin wrote:
>> I'm trying to move from Java to D, and i have some like this:
>>
>> interface A
>> {
>> public bool isCancelled();
>> public void setCancelled(bool value);
>> }
>>
>> class B
>> {
>> public bool isCancelled();
>> protected void setCancelled(bool value);
>> }
>>
>> But when i do
>>
>> class C : B, A
>> {}
>>
>> I get
>>
>> Engine/Main.d(6): Error: class Main.C interface function 'bool
>> isCancelled()' is not implemented
>> Engine/Main.d(6): Error: class Main.C interface function 'void
>> setCancelled(bool value)' is not implemented
>
> You have to provide the implementations of the interface
> functions either in B or C. I think you actually tested with B
> implementations though:
>
> class B
> {
> public bool isCancelled()
> {
> // implemented
> return false;
> }
>
> protected void setCancelled(bool value)
> {
> // implemented
> }
> }
>
> Still the same error...
>
> Unless you want to implement the functions on C as well, then C
> should not inherit from A. A is already inherited by B:
>
> class C : B // <-- no A
> {}
>
> Ali
Oh i forgot to add the implementation here, but its there, what i
want to do is with an interface be able to change "protected" to
"public", this is possible using Java but i don't know if
possible using D.
class C : B, A -> setCancelled() is changed from protected to
public
{
}
More information about the Digitalmars-d-learn
mailing list