C++对象创建和列表
C++ Object Creation & Lists
Main Method -> 包含 Family 对象的列表。族 -> 包含 Person 对象的列表。
创建 Family 对象后,如何强制它为每个新的 Family 实例创建一个新的"Person"对象列表?
目前,主列表中的所有 Family 对象都共享一个 Person 链表。
将不胜感激您的想法。我必须使用链表的链表...
#include <iostream>
#include <list>
using namespace std;
class Family
{
private:
int family_id;
public:
int getFamilyId();
void createPerson(int id, string name);
void readPersonName();
Family(int id);
~Family();
};
list <Person> people;
Family::Family(int id)
{
family_id = id;
}
Family::~Family(void){};
int Family::getFamilyId()
{
return family_id;
};
void Family::createPerson(int id, string name)
{
people.push_back(Person(id, name));
};
void Family::readPersonName()
{
list<Person>::iterator itr;
for(itr = people.begin(); itr != people.end(); itr++)
cout << itr->get_person_name() << 'n';
};
"创建 Family 对象后,如何强制它为每个新的 Family 实例创建一个新的'Person' 对象列表?"
为什么不简单地将该列表声明为类成员?
class Family {
private:
int family_id;
public:
int getFamilyId();
void createPerson(int id, string name);
void readPersonName();
Family(int id);
~Family();
private:
list <Person> people; // <<<<<
};
"我必须使用链表的链表..."
我不完全理解你问题的这一部分。您是否还需要为所有人保留一份全球名单?
在这种情况下,您应该使用人员的共享对象列表:
class Family {
// ....
void createPerson(int id, string name) {
people.push_back(new Person(id,name));
allPeople.push_back(people.back());
}
private:
list <shared_ptr<Person>> people;
};
list<shared_ptr<Person>> allPeaople;
相关文章:
- 动态分配列表 - 创建一个函数,用于删除所有包含偶数值的元素
- 在c++中为链接列表创建复制构造函数/函数
- C++类型列表创建子列表
- 使用初始值设定项列表创建单个项向量
- 如何在C 类中使用备用参数列表创建和使用finturePointer
- C++:从两个包含子类 (typedef) 的列表创建一个列表
- 在线性时间内使用邻接列表创建对顶点
- 从类型列表创建向量元组
- C 链接列表创建链接列表的链接列表
- 需要一个宏来从 std::ostringstream 和 << arg 列表创建 std::string
- 从 2D C 列表创建 boost.geometry.model.polygon
- 如何在C++中使用 STL 列表创建循环
- 使用Templates从参数列表创建std::vector
- 链接列表创建节点
- 如何从 CGAL 中的坐标和拓扑列表创建Polyhedron_3数据结构
- 是否可以使用初始值设定项列表创建临时结构/类
- 如何通过子类型列表创建指针向量
- 为双链接列表创建类的新实例
- 如何用集合顶点列表创建boost子图
- 是否可以为通用元素列表创建排序