gpt4 book ai didi

c++:允许临时对象调用非常量成员函数的设计理念是什么?

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

我搜索堆栈溢出,人们说修改临时对象是愚蠢的,所以不允许将临时对象绑定(bind)到非常量左值引用,就像你不能将临时对象传递给具有非常量左值引用的函数一样.

那么为什么允许临时对象调用非 const 成员函数,它有可能修改对象并做“愚蠢”的事情?你可能会说,“哈,这是允许的,因为我们想为程序员提供一些灵 active 来做实际上并不那么愚蠢的“愚蠢”事情”,这就是我很难购买的原因,因为如果我购买这个借口,我认为“临时绑定(bind)到非常量左值引用”可以使用相同的理由来证明。

谢谢!我在这里几乎找不到任何相关问题。他们只是告诉我这是一个异常(exception),但为什么我们允许这个异常(exception)?

最佳答案

您不能将临时变量绑定(bind)到非常量引用,但这里的基本原理是以避免意外修改临时变量。理由是您不想默默地错过修改您想要修改的内容。

假设这是允许的,那么:

void foo(double& x);
int y;
foo(y); //user wants to modify y, but instead a temporary is modified

就其本身而言,修改临时对象是完全可以的,而且通常很有用。没有理由禁止它。

关于c++:允许临时对象调用非常量成员函数的设计理念是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51338287/

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