作者热门文章
- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我想教一些学生,在下面的情况下你应该通过引用传递,否则对象将被复制。
注意:他们还不知道复制构造函数,所以如果可能的话我不想在示例中提及它们。
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/
java.lang.Throwable 的哪些子类可能被空语句抛出? 通过短语“空语句”,我指的是“无”、“分号”和“分号”: // .... A(); B(); C(); try { //
我是一名优秀的程序员,十分优秀!