请假设一个资源管理类,比方说
template<typename AddressFields>
class AddressBook
{
std::list<AddressBookEntry<AddressFields> > book;
};
其中包含 AddressBookEntry 对象的列表。AddressBookEntry 基本上应该由几个默认成员变量加上一个由模板化的 AddressFields 描述的可自定义字段变量组成:
template<typename AddressFields>
struct AddressBookEntry
{
int id;
AddressFields fields;
};
我想提供一些基本结构,例如
struct Name
{
std::string n_first;
std::string n_last;
};
struct Address
{
std::string street;
int zip;
std::string city;
};
struct Mobile
{
std::string m_number
};
现在我的问题是:有没有办法在现有结构的基础上创建新结构?我想允许用户通过组合例如“名称”和“手机”来创建他/她自己的自定义地址字段类型
struct NameMobile
{
std::string n_first;
std::string n_last;
std::string m_number;
};
所以它可以插入地址簿。但仅限于已经存在的结构。