www.digitalmars.com         C & C++   DMDScript  

D.gnu - Interfaces versus unimplemented virtual functions

reply Giles Constant <giles spacepigs.com> writes:
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
Jun 28 2004
next sibling parent Andy Friesen <andy ikagames.com> writes:
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
Jun 28 2004
prev sibling parent Ilya Minkov <minkov cs.tum.edu> writes:
 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
 

Jun 28 2004