In C++ 11, we can use {} to provide a uniform initialization
class C
{
int a;
int b;
public:
C(int i, int j);
};
C c {0,0}; // Equivalent to: C c(0,0);
int* a = new int[3] { 1, 2, 0 }; // array initializer
class X {
int a[4];
public:
X() : a{1,2,3,4} {} // member array initializer
};
// C++11 container initializer
vector<string> vs={ "first", "second", "third"};
map singers =
{ {"Lady Gaga", "+1 (212) 555-7890"},
{"Beyonce Knowles", "+1 (212) 555-0987"}};
// Similarly, C++11 supports in-class initialization of data members:
class C
{
int a=7;
public:
C();
};