我正在阅读Stroustrups C ++ 4th Ed。页面153,并有关于初始化与分配的问题。据我了解,初始化发生在构造函数中,并且在operator =重载函数中进行赋值。这是正确的吗?
此外,我不记得在他的1998年第三版中看到括号,即int count {1}
。书。是否应该使用int count {1}
或int count = 1
定义诸如计数器之类的变量?如果使用方括号,似乎与C有点尴尬。
感谢您的指导
void f() {
int count {1}; // initialize count to 1
const char∗ name {"Bjarne"}; // name is a variable that points to a constant (§7.5)
count = 2; // assign 2 to count
name = "Marian";
}
答案 0 :(得分:7)
花括号是uniform initialization的一部分,它是C ++ 11标准所添加的。
使用
int value {1};
等同于
int value = 1;
使用大括号和“赋值”语法初始化变量之间存在一些差异,但是在这种简单情况下,它们是相同的。
答案 1 :(得分:1)
initialize意味着您是第一次编写变量,并给它一个初始值,如int x = 5; 但是赋值意味着您已经有了一个变量,并且您更改了它的值,例如以后使用 设置x = 10; 现在您将变量x分配给编号10