unittest affects next unittest

sigod via Digitalmars-d-learn digitalmars-d-learn at puremagic.com
Tue Aug 5 08:39:53 PDT 2014


On Saturday, 2 August 2014 at 06:46:04 UTC, Jonathan M Davis via 
Digitalmars-d-learn wrote:
> On Fri, 01 Aug 2014 23:09:37 +0000
> sigod via Digitalmars-d-learn 
> <digitalmars-d-learn at puremagic.com> wrote:
>
>> Code: http://dpaste.dzfl.pl/51bd62138854
>> (It was reduced by DustMite.)
>>
>> Have I missed something about structs? Or this simply a bug?
>
> Don't do this with a member variable:
>
> private Node * _root = new Node();
>
> Directly initializing it like that sets the init value for that 
> struct, and
> that means that every struct of that type will have exactly the 
> same value for
> _root, so they will all share the same root rather than having 
> different
> copies. You need to initialize _root in the constructor.
>
> - Jonathan M Davis

So, it's a static initialization? Documentation didn't mention 
it. (In class' section only 2 sentences about it and none in 
struct's section.)

This is different from many languages (C#, Java... don't know 
about C and C++). What was the reason to make this initialization 
static?


More information about the Digitalmars-d-learn mailing list