gpt4 book ai didi

c++ - 为什么复制初始化是这样的?为什么需要复制构造函数?

转载 作者:可可西里 更新时间:2023-11-01 18:00:12 25 4
gpt4 key购买 nike

<分区>

Possible Duplicate:
What’s the motivation behind having copy and direct initialization behave differently?

通过复制初始化,我的意思是这样的:

struct MyStruct
{
MyStruct(int) {}
MyStruct(const MyStruct&) {}
};

MyStruct s = 5; // needs *both* the int and copy constructor

尽管使用 C++ 编程多年,但我从未意识到上述代码需要复制构造函数(感谢 jogojapan)。临时文件总是被省略,因此我什至不知道它的存在(至少在表面上,尽管它被优化掉了),直到它被指出给我。

经过大量谷歌搜索后,我了解了它的工作原理。我的问题是为什么是这样的?

为什么标准没有规定上面的例子不需要复制构造函数?是否有一些特定的案例/示例表明在这种类型的初始化中需要复制构造函数很重要?

如果没有对为什么事物是现在这样的合理解释,我只是将其视为烦人的人工制品,但如果我遗漏了一些重要的东西,我宁愿不要无知。

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