c++11 - std::move 的效果
问题描述
struct Base
{
Base(int a_) : a(a_)
{
}
int a;
};
class Derived: public Base
{
public:
Derived(int i): Base(i)
{
}
Derived(const Derived && rhs)
: Base(std::move(rhs))
{
}
};
int main()
{
Derived d1(2);
Derived d2 = std::move(d1);
std::cout << d1.a << '\n';
}
为什么我们刚刚移动的东西,也就是我们刚刚窃取的东西,仍然可以在后续代码行中访问?我的意思是d1.a
。
解决方案
推荐阅读
- c# - 如何在不强制用户按下 Blazor 中的按钮的情况下注销用户?
- reactjs - 在 react native 中将基于类转换为基于函数的组件时出现问题
- r - clusters() 和 components() 之间的区别 - R igraph
- c# - WPF,文本输入,每个单词作为一个单独的对象
- python - 试图通过在 python 中使用 movie.py 组合音频和一个图像来创建视频文件?我的代码正在运行,但没有添加音频文件。帮我
- node.js - 覆盖 Slack 通道目标
- python - 递归列表,但我得到了一些 [..]
- javascript - 自动将容器高度更改为响应式图像
- python - 如何拆分索引年份和列月份的熊猫数据(百分比变化)
- reactjs - 如何使用 aync 和 await 调用函数的内部使用效果?