【发布时间】:2020-06-15 08:57:22
【问题描述】:
我已经为此苦苦思考了至少两个小时,我的知识可能在这里遗漏了一些空白。基本上,我必须为复制构造函数编写函数,无论如何我都无法让它工作。我绝对忽略了这里的一些东西,因为这看起来并不那么复杂。
// Definition default constructor
Members::Members()
{
members = new map<string, set<string>>;
numOfMembers = 0;
}
// Definition copy constructor
Members::Members(const Members& mem)
{
numOfMembers = mem.numOfMembers;
}
我似乎根本无法执行这个程序,它在复制构造函数处停止,我只是不知道从这里去哪里。仍然在 STL 地图周围环绕我的头。将不胜感激任何帮助或解释!谢谢!
给定 Header 函数:
class Members
{
// Overloaded insertion operator (friend)
friend std::ostream& operator<<(std::ostream& out, const Members& mem);
public:
// Default constructor
Members();
// Copy constructor
Members(const Members& mem);
【问题讨论】:
-
为什么是'新地图
'?你能展示全部内容吗? -
当然。基本上,我正在尝试实现“成员类”并且有三个文件。 Members.h、Members.cpp(我现在正试图弄清楚)和 Main.cpp(我正在测试的地方)。 Members.h 已经拥有我需要的所有成员变量。 members 是指向动态 STL 映射的指针;映射对中的第一项是存储成员的字符串,映射对中的第二项是存储该成员的朋友列表的 STL 字符串集。 numOfMembers 是一个存储成员总数的 int。
-
动态 STL 映射并不意味着您需要“新”,STL 中的容器是动态的。不确定您需要成员数量,您可以查看地图的大小
-
它在哪里崩溃?你能用这些类展示程序吗?
标签: c++ dictionary copy-constructor