我试图教一些学生,在下面的例子中你应该通过引用传递,否则将复制对象.
注意:他们还不知道复制构造函数,所以如果可能的话我不想在示例中提到它们.
int sumOfSizes(CObject const & a, CObject const & b)
{
return a.getSize() + b.getSize();
}
Run Code Online (Sandbox Code Playgroud)
任何人都可以帮助我一个真实世界的例子,其中总和实际上不是预期的?
正如@Space_C0wb0y在他的评论中暗示的那样,当通过值传递时,这可以做一些"意外"的事情的唯一方法是,如果复制构造函数CObject做了"意外"的事情(这样本地CObject实例与原始实例不相等(在任何意义上)实例).这反过来表明设计不好.
因此,你的反例将不得不依赖于一个人为的,设计糟糕的CObject.
| 归档时间: |
|
| 查看次数: |
137 次 |
| 最近记录: |