Newbie: copy, assignment of class instances
Steven Schveighoffer
schveiguy at yahoo.com
Thu May 27 15:57:38 PDT 2010
On Thu, 27 May 2010 18:41:19 -0400, bearophile <bearophileHUGS at lycos.com>
wrote:
> Thank you Steven for your explanations, I have done similar things in C
> and D, but I didn't understand what you meant.
>
>> A is always put first, that way, a pointer to a B can always be used as
>> a pointer to an A.<
>
> Are you sure C specs say doing this leads to defined behaviour?
> (Recently from a discussion with Walter I have learnt that D follows
> exactly C specs regarding such defined/undefined things.)
Xt and the Berkeley sockets library relies on it. If it's not in the
spec, then it's a de-facto standard. I think the defined behavior is that
the first member of a struct is positioned at the same address as the
struct itself.
>
>> What I would like is a common-sense approach to inheritance for structs
>> that just does not allow virtual methods or interfaces, and which does
>> not
>> cast implicitly to the base (explicit cast is OK). I think some designs
>> would benefit greatly from this simple feature. I think it's more
>> tricky
>> than I've described, but I think with some diligence it can be done.
>
> I have desired some form of inheritance in D structs (before the
> creation of alias this, that so far I have not used much). I think
> Walter will not love this idea, but you can think more about its
> details, and then you can post it in the main D newsgroup.
Sadly, I think it is not much more than a wish. I don't think Walter's
mind can be changed on this.
-Steve
More information about the Digitalmars-d-learn
mailing list