gpt4 book ai didi

c++ - 如果您不通过引用将对象传递给函数,可能会出现什么问题

转载 作者:太空狗 更新时间:2023-10-29 20:30:45 25 4
gpt4 key购买 nike

我想教一些学生,在下面的情况下你应该通过引用传递,否则对象将被复制。

注意:他们还不知道复制构造函数,所以如果可能的话我不想在示例中提及它们。

int sumOfSizes(CObject const & a, CObject const & b)
{
return a.getSize() + b.getSize();
}

谁能帮我举一个真实世界的例子,其中总和实际上不是预期的?

最佳答案

正如@Space_C0wb0y 在他的评论中暗示的那样,当按值传递时,这可能会做一些“意外”的事情的唯一方法是 CObject 的复制构造函数是否做了一些“意外”的事情(例如本地 CObject 实例不等同于(在任何意义上)原始实例)。这反过来又表明设计不好。

因此,您的反例将不得不依赖于人为设计的、设计不当的 CObject

关于c++ - 如果您不通过引用将对象传递给函数,可能会出现什么问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6057563/

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