>How does compiler impliments intializer lits?
It depends on the compiler.
>How intializer lits improve performence?
There are two steps when you initialize in the body of a constructor. The first step is performed before the body, where the data members are allocated memory and given a default value. The second step is the actual initialization that you ask for. So there's an unnecessary step where the data members are given a default value. An initialization list avoids that step and can make your code faster as a result, especially if copying data is expensive for the type that's being initialized.
>When it is must to use intializer lits?
const and reference data members *must* be initialized in an initialization list because they can't exist without being initialized. Everything else is optional.
>When intializer lits must not be used?
There isn't one.
>What is wrong with this pice of code..
You didn't terminate your class with a semicolon.