【发布时间】:2014-05-02 23:04:59
【问题描述】:
为什么作为引用而不只是对象的副本如此重要?例如:
ostream& operator<<(ostream& out, const X & _class);
ostream& operator<<(ostream& out, const X _class);
如果我们不将它作为参考传递,我们会输/赢什么?
【问题讨论】:
-
否则它将创建 ostream 的副本并在其上执行您的逻辑,这可能不是您想要的。
-
这就是我要问的,这是一个简单的输出重载!我不想改变任何我只想 cout 的东西。
-
我不想更改输出重载的对象
-
有时这是必要的,因为
X对象不可复制。如果X有一个重要的复制构造函数,那么它就是一种优化。在其他情况下,它是一种微观优化,甚至可能是一种“悲观化”。
标签: c++ operator-overloading pass-by-reference