Thread overview
Interfaces versus unimplemented virtual functions
Jun 28, 2004
Giles Constant
Jun 28, 2004
Andy Friesen
Jun 28, 2004
Ilya Minkov
June 28, 2004
Hiya,

I'm a little bit confused as to how to implement something.  In C++, I would write this:

class Base {
        int x;
        virtual void function() = 0;
}

ie, it's a base class, which has an int, and a function which must be implemented by any subclasses.

In D, there doesn't appear to be an equivalent to the "= 0" syntax, and interfaces won't let me have integers!

What's the equivalent style?

Thanks!

Giles

June 28, 2004
Giles Constant wrote:
> Hiya,
> 
> I'm a little bit confused as to how to implement something.  In C++, I would
> write this:
> 
> class Base {
>         int x;
>         virtual void function() = 0;
> }
> 
> ie, it's a base class, which has an int, and a function which must be
> implemented by any subclasses.
> 
> In D, there doesn't appear to be an equivalent to the "= 0" syntax, and
> interfaces won't let me have integers!
> 
> What's the equivalent style?
> 
> Thanks!

What you're looking for is the abstract keyword:

    class Base {
        int x;
        abstract void function();
    }

(by the way, this is kind of an odd place to post this.  D.gnu is mainly about GCC-related issues as opposed to the D language itself)

 -- andy
June 28, 2004
> abstract class Base {
>         int x;
>         virtual void function();
> }

-eye

Giles Constant schrieb:
> Hiya,
> 
> I'm a little bit confused as to how to implement something.  In C++, I would
> write this:
> 
> class Base {
>         int x;
>         virtual void function() = 0;
> }
> 
> ie, it's a base class, which has an int, and a function which must be
> implemented by any subclasses.
> 
> In D, there doesn't appear to be an equivalent to the "= 0" syntax, and
> interfaces won't let me have integers!
> 
> What's the equivalent style?
> 
> Thanks!
> 
> Giles
>