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

avatar
作者
筋斗云
阅读量:0

当然可以。在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中获取数据。这样,我们就可以保护类的内部数据不被外部直接访问,实现了数据封装。

广告一刻

为您即时展示最新活动产品广告消息,让您随时掌握产品活动新动态!