"Walter Bright" <newshou...@digitalmars.com> wrote in message news:hbo7fa$316...@digitalmars.com... > AJ wrote: >> You lose the ability to use, say a class declaration, as the >> specification (at least without a sophisitcated, >> code-folding/code-formatting IDE). > > Just change "class" to "interface" and you're good to go.
Seems "apples and oranges" to me. "class declaration" can have data members while "interface" can't. I mean, "my concept of it". I don't know what definitions D has of those things. In C++, I use interfaces where appropriate (say, where usage outside of a given library/subsystem is anticipated/desired), but for most purposes (say, within a given library/subsystem), I want a full class declaration (with data members etc). When I think "interface", I think "pure abstract base class" and is something strictly behavioral. When thinking "class" or "struct", I think first of the data members, something more nominal ("noun-ish").