温馨提示×

能否用C++的set和get实现数据封装

c++
小樊
81
2024-09-25 01:36:13
栏目: 编程语言

当然可以。在C++中,我们可以使用setget方法来实现数据封装,保护类的内部数据不被外部直接访问。以下是一个简单的示例:

#include <iostream>
#include <set>
#include <string>

class DataWrapper {
private:
    std::set<std::string> data;

public:
    // 添加数据到set中
    void addData(const std::string& data) {
        this->data.insert(data);
    }

    // 从set中获取数据
    std::string getData(const std::string& key) const {
        auto it = data.find(key);
        if (it != data.end()) {
            return *it;
        } else {
            return ""; // 如果找不到数据,返回空字符串
        }
    }
};

int main() {
    DataWrapper dw;
    dw.addData("Hello");
    dw.addData("World");

    std::cout << "Data: " << dw.getData("Hello") << std::endl;
    std::cout << "Data: " << dw.getData("World") << std::endl;
    std::cout << "Data: " << dw.getData("Not exist") << std::endl;

    return 0;
}

在这个示例中,我们创建了一个名为DataWrapper的类,它包含一个std::set<std::string>类型的私有成员变量data。我们提供了两个公共成员函数addDatagetData,分别用于向data中添加数据和从data中获取数据。这样,我们就可以保护类的内部数据不被外部直接访问,实现了数据封装。

0