c – 在没有指针的情况下移动构造函数

前端之家收集整理的这篇文章主要介绍了c – 在没有指针的情况下移动构造函数前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我知道这个问题可能看起来非常基本.但我无法找到任何一个没有指针的移动构造函数的例子.

我有一个包含矢量对象变量的类.不是一个指针.所以我的问题:
这是否意味着我不需要移动构造函数?或者我的实现是错误的,我应该使用指向向量的指针,然后使用移动构造函数

谢谢

解决方法

如果您的类包含可移动对象(例如向量),那么只需让编译器生成隐式移动操作.他们会做正确的事情,移动每个子对象.

如果您自己处理动态对象或其他非托管资源句柄的原始指针,则只需编写自己的代码.最好的方法是使用正确的可复制/可移动对象(例如容器,智能指针或其他RAII类)来管理其中的每一个;然后通过组合这些构建的复杂对象将隐式地具有正确的复制/移动语义.

(如评论中所述:如果你的类声明自己的析构函数或复制操作,那么它将不会获得隐式移动操作;你需要定义自己的.但是如果你遵循上面的建议,正确地编写它托管类型不需要任何特殊处理,那么你不需要声明任何这些东西.)

猜你在找的C&C++相关文章