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