Q:

c++11 what is first? constructor or default value?

In c++11 you can do this:
class Foo
{
    public:
        Foo();
        bool test = false;
};

Foo::Foo()
{
    // is test guaranteed to be false now? and is it surely not overriden later?
    this->test = true;
}

what I want to know is basically described in comments, I can verify this with my compiler, but is this mentioned in standard? Is it always same on all platforms and all compilers?

A:

is test guaranteed to be false now? Yes.
is it surely not overriden later? It will not be overriden. The default is set as part of the initializer list at the start of the constructor.
If test is not included in the initializer list the compiler will put it in with the default. For your constructor the compiler would actually generate code for this:
Foo::Foo()
    : test(false)
{
    // is test guaranteed to be false now?
    this->test = true;
    // is it surely not overriden later?
}

With this constructor test would first be initialized to false and then later in the body set to true.
If you had written:
Foo::Foo()
    : test(true)
{
}

The test would be in the initialiser list already and the compiler won't put it there and test would be directly initialized to true.

