21xrx.com
2024-11-22 08:14:33 Friday
登录
文章检索 我的文章 写文章
实现联系人功能的C++封装方法
2023-07-02 22:41:47 深夜i     --     --
C++ 封装 联系人功能 实现方法

联系人功能是现代化移动设备的必备功能之一。而C++是一种面向对象编程语言,在编写应用程序时可以使用其强大的封装概念来实现联系人功能。下面介绍几种实现联系人功能的C++封装方法。

1. 使用类来封装联系人信息

在C++中,我们可以定义一个“联系人”类,该类包含联系人的姓名、电话号码、电子邮件等属性。然后使用类的成员函数来访问和操作联系人信息。

举个例子:


class Contact {

public:

  string name;

  string phone;

  string email;

  void setName(string name)

    this->name = name;

  

  void setPhone(string phone)

    this->phone = phone;

  

  void setEmail(string email)

    this->email = email;

  

  string getName()

    return name;

  

  string getPhone()

    return phone;

  

  string getEmail()

    return email;

  

};

2. 使用结构体和指针来封装联系人信息

另一种常见的封装方法是使用结构体和指针来封装联系人信息。在这种方法中,我们可以定义一个包含联系人信息的结构体,并定义一个指向该结构体的指针。

举个例子:


struct ContactInfo

  string name;

  string phone;

  string email;

;

class Contact {

public:

  ContactInfo* info;

  Contact()

    info = new ContactInfo;

  

  ~Contact()

    delete info;

  

  void setName(string name)

    info->name = name;

  

  void setPhone(string phone)

    info->phone = phone;

  

  void setEmail(string email)

    info->email = email;

  

  string getName()

    return info->name;

  

  string getPhone()

    return info->phone;

  

  string getEmail()

    return info->email;

  

};

3. 使用容器来封装联系人信息

最后一种封装方法是使用C++标准库中的容器来封装联系人信息。在这种方法中,我们可以使用vector、map或unordered_map等容器来存储联系人信息。

举个例子:


vector<map<string, string>> contacts;

void addContact(string name, string phone, string email) {

  map<string, string> contact;

  contact["name"] = name;

  contact["phone"] = phone;

  contact["email"] = email;

  contacts.push_back(contact);

}

void deleteContact(int index) {

  if (index < 0 || index >= contacts.size())

    return;

  

  contacts.erase(contacts.begin() + index);

}

void updateContact(int index, string name, string phone, string email) {

  if (index < 0 || index >= contacts.size())

    return;

  

  contacts[index]["name"] = name;

  contacts[index]["phone"] = phone;

  contacts[index]["email"] = email;

}

map<string, string> getContact(int index) {

  if (index < 0 || index >= contacts.size()) {

    return {};

  }

  return contacts[index];

}

总结

以上三种封装方法都有其优点和缺点,我们需要根据实际情况来选择最适合自己的方法。在使用容器来封装联系人信息时,需要注意数据类型的选择和容器的遍历方式,以确保程序的效率和正确性。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复