Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
303 views
in Technique[技术] by (71.8m points)

c++ - Why can't I use uniform initialization when I want to override a value?

bool a{ false };

Now I created a boolean variable, but if I want to do this:

a { false };
a = false;

The first method doesn't work, what's the reason?

See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Answer

0 votes
by (71.8m points)

You can only do uniform initialization (or any form of initialization) when an object is created. After an object is initialized, you can only modify it:

bool a{false}; // brace initialization
bool b = false; // copy initialization

// a and b are created now, and can't be initialized again

a {false}; // not valid syntax
b = false; // assignment, NOT initialization

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...