gpt4 book ai didi

C++赋值运算符,我们可以用copy来代替它吗?

转载 作者:行者123 更新时间:2023-12-01 14:22:49 25 4
gpt4 key购买 nike

我读书的时候:

What's the difference between assignment operator and copy constructor?



这里: What's the difference between assignment operator and copy constructor?

显示了以下示例:
A aa;
A a = aa; //copy constructor

对比:
A aa;
A a;
a = aa; // assignment operator

我的问题是,为什么我们需要赋值运算符?我的意思是在这种情况下使用复制构造函数会更有效,同时它可以完成相同的工作。

有人可以举一个真实世界的例子,说明使用赋值运算符不能被复制构造函数替换吗?

最佳答案

当你想在一个值已经被构造后改变它时,你需要赋值。例如:

  • 更改已存储在 std::map 中的值
  • 更改 std::vector 中的第 n 个值
  • 在循环外更改变量的值
  • 更改作为指针或引用提供的输出参数的值
  • ...

  • 这份名单真的可以无休止地继续下去。但是在您的示例中,确实可以简单地避免使用赋值。

    关于C++赋值运算符,我们可以用copy来代替它吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61997521/

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