c++ - 将临时派生对象传递给基引用
问题描述
class B {};
class D : public B{};
f(B& x);
f(D());
我注意到(我有带有日志信息的复制构造函数)只Base
调用了复制构造函数。它是否正确,为什么?
解决方案
非常量左值引用不能绑定到右值,因此您的示例程序片段格式错误。
如果我们将示例修复为使用 const 左值引用,则不会涉及任何一个类实例的副本。
所以,结论是:不,这是不正确的。
推荐阅读
- jquery - jQuery没有成功重置表单
- flutter - 如何在 Flutter 中正确放置一个红色椭圆?
- python - Python 输入与列表比较
- javascript - DOM 方法从节点获取正确的元素 - 仅使用 JavaScript
- python - 获取文件路径的最后 n 部分
- python - 如何使用经过训练的 CNN 对新图像进行分类?
- reactjs - 打字稿中的嵌套导出
- c++ - 我的 Snake 游戏在您吃苹果时崩溃,苹果在您选择新位置后会在您体内生成(C++,SDL)
- javascript - R Shiny 中的数据表:在 JavaScript 的帮助下,使用 KeyTable 扩展从数据表中读取标记的单元格
- javascript - 我正在阅读的 Django 会议记录是一个月?