C ++:初始化与赋值?

时间:2020-06-02 20:25:50

标签: c++ c++11

我正在阅读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";
}

2 个答案:

答案 0 :(得分:7)

花括号是uniform initialization的一部分,它是C ++ 11标准所添加的。

使用

int value {1};

等同于

int value = 1;

使用大括号和“赋值”语法初始化变量之间存在一些差异,但是在这种简单情况下,它们是相同的。

答案 1 :(得分:1)

initialize意味着您是第一次编写变量,并给它一个初始值,如int x = 5; 但是赋值意味着您已经有了一个变量,并且您更改了它的值,例如以后使用 设置x = 10; 现在您将变量x分配给编号10

相关问题