gpt4 book ai didi

c++ - 混淆了直接初始化和复制初始化

转载 作者:搜寻专家 更新时间:2023-10-31 01:10:10 24 4
gpt4 key购买 nike

我对以下概念感到困惑:

string str="123";

有些书上说:用“=”就是拷贝初始化,

但有些文章说:string str="123"string str("123") 相同。毫无疑问str("123")就是直接初始化。

string str="123"; 的样式是什么?

如何判断是复制初始化还是直接初始化?

最佳答案

这只是语法的问题:

  • T x = y;复制初始化,并且

  • T x(y);直接初始化

对于任何类型 T 都是如此。究竟发生什么取决于 T 是什么类型。对于原始类型(例如 int),两者完全相同。对于类类型(例如 std::string),两者实际上是相同的,尽管复制初始化要求复制构造函数可访问且非显式(尽管它实际上不会是在实践中调用)。

关于c++ - 混淆了直接初始化和复制初始化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16209540/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com