【C++】管理者类的实现
  yQAl4kecrO8W 2023年12月22日 115 0


目的

通过管理者类,可以对类进行很好的管理。

实例

以下是一个简单的C++示例,展示了如何创建一个管理者类,允许用户添加和删除项目:

#include <iostream>
#include <vector>
#include <string>

using namespace std;

class Item {
  public:
    Item(string name, int quantity) {
        this->name = name;
        this->quantity = quantity;
    }
    string getName() {
        return name;
    }
    int getQuantity() {
        return quantity;
    }
  private:
    string name;
    int quantity;
};

class Manager {
  public:
    void addItem(string name, int quantity) {
        Item item(name, quantity);
        items.push_back(item);
    }
    void removeItem(string name) {
        for (int i = 0; i < items.size(); i++) {
            if (items[i].getName() == name) {
                items.erase(items.begin() + i);
                break;
            }
        }
    }
    void printItems() {
        for (int i = 0; i < items.size(); i++) {
            cout << items[i].getName() << ": " << items[i].getQuantity() << endl;
        }
    }
  private:
    vector<Item> items;
};

int main() {
    Manager manager;
    manager.addItem("Apple", 5);
    manager.addItem("Banana", 10);
    manager.printItems();
    manager.removeItem("Apple");
    manager.printItems();
    return 0;
}

解释

示例定义了两个类:ItemManagerItem类表示一个项,其中有名称和数量两个属性。Manager类用来管理这些项,允许用户添加和删除项,并能够打印当前添加的所有项。

addItem函数中,创建了一个新的Item对象并将其添加到一个vector中,表示当前管理的项。在removeItem函数中,遍历vector查找需要删除的项,并使用erase函数将其从vector中删除。在printItems函数中,遍历整个vector并打印所有项的名称和数量。

main函数中,创建了一个Manager对象并添加了两个项,然后打印了当前添加的所有项。接着,删除了一个项并再次打印了当前添加的所有项。

可以在此基础上使用它来扩展你的自己的管理类,以满足更复杂的需求。


【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年12月22日 0

暂无评论

推荐阅读
  8Tw5Riv1mGFK   2024年05月01日   80   0   0 C++
  BYaHC1OPAeY4   2024年05月08日   57   0   0 C++
  yZdUbUDB8h5t   2024年04月29日   59   0   0 C++
  yZdUbUDB8h5t   2024年05月05日   43   0   0 C++
  oXKBKZoQY2lx   2024年05月17日   57   0   0 C++
yQAl4kecrO8W