在类中定义自己的复制控制版本

Define own versions of copy-control in class

提问人:Vitaly Ershov 提问时间:8/23/2021 更新时间:8/23/2021 访问量:64

问:

我正在阅读有关 C++ 的书,并遇到了复制构造函数。所以我对这种材料的理解有问题。 在哪种情况下,我们应该为复制控制(赋值运算符、复制构造函数)编写自己的函数?

例如:我们是否应该在这里使用这个函数

class TextQuery {
public:
    using lineNo = vector<string>::size_type;
    explicit TextQuery(ifstream&);
    QueryResult query(const string&) const;
private:
    shared_ptr<vector<string>> file;
    map<string, shared_ptr<set<lineNo>>> wm;
};
C++ OOP 复制构造函数

评论

4赞 NathanOliver 8/23/2021
相关/欺骗: stackoverflow.com/questions/4172722/what-is-the-rule-of-three
3赞 StoryTeller - Unslander Monica 8/23/2021
理想情况下永远不会..
0赞 Ted Lyngmo 8/23/2021
看起来可以使用“零规则”,因为所有成员变量都处理自己的分配/分配。TextQuery
0赞 HolyBlackCat 8/23/2021
仅当类“拥有需要手动管理的资源”时,才执行此操作,例如指向堆分配内存的指针,或 或其他任何内容。但是,由于通常您将使用容器和(不需要手动管理),因此您几乎不需要复制操作。FILE *std::fstream

答: 暂无答案