c++ - 派生传递给超级移动构造函数
问题描述
将派生的 obj 移动d
到派生的dd
,但匹配base
的移动构造函数,不匹配derived
的构造函数
// base class
class base {
int x;
public:
base() = default;
base(base && b) {
x = b.x;
}
};
// derived struct
struct derived : public base {
int y;
derived(int d) {
y = d;
}
derived() = default;
};
int main()
{
derived d{1};
derived dd = std::move(d);
spdlog::info(dd.y); // => 1
return 0;
}
我不知道为什么dd.y
会是 1 而不是 0 ?
如何d.y
复制到dd.y
struct ?
解决方案
推荐阅读
- php - 自动从某个目录导入所有 CSS 文件的 PHP 函数
- java - 玉兰日志中的 AbstractFieldFactory 警告
- python - 从 Python 中的字符表达式创建列表的优雅方式
- javascript - page.js 库:如何启用 onbeforeunload?
- java - RemoteServer - 如何在 Robotframework 中使用 Java 关键字?
- python - python绘制特征向量
- .htaccess - htaccess localhost - mod-rewrite,htdocs,mamp
- angular - Angular中contentEditable元素上的focus()不起作用
- html - 我的页面上的课程数量如何计算并显示在我的菜单中?
- javascript - VueJS 模板 - 在登录表单和注册表单之间翻转