gpt4 book ai didi

c++ - 实现模型,结构与类

转载 作者:行者123 更新时间:2023-11-27 22:51:37 32 4
gpt4 key购买 nike

假设我有一个 REST 服务,它返回一个具有以下方案的 JSON 对象:

{
"id" : 1
"name" : "Peter"
"age" : 25
}

我有一个用 C++ 编写的应用程序,它接收这个对象并反序列化以备后用。我需要一个数据结构来存储对象。

我可以使用结构来实现它:

struct person
{
int id;
string name;
int age;
};

并有一个辅助函数来初始化结构:

// Returns a person deserialized from a JSON object
person fromJson(JsonObject obj);

// Usage:
auto personInfo = fromJson(/* JSON object from REST service */);

或者拥有一个带有 getter、setter 和构造函数的类,该构造函数将 JsonObject 作为参数并自行进行反序列化:

class person
{
public:
// Deserialized a JSON object and initializes the private fields
person(JsonObject obj);

int id() const;
string name() const;
int age() const;

void setId(int id);
void setName(string name);
void setAge(int age);

private:
int _id;
int _name;
int _age;
};

// Usage:
person personInfo{ /* JSON object from REST service */ };

假设数据将存储在客户端机器上,显示,可能编辑然后发送回 REST 服务,哪种实现更适合使用?因为我只会使用数据结构来存储数据(使用 setters/getters 不应该触发除设置/获取值之外的任何其他东西)除了个人偏好之外,我真的想不出一个比另一个有什么好处。

最佳答案

我会走类(class)路线。在那种情况下,您正在使用的对象可以完成所有需要做的事情(没有帮助方法来创建对象)并且很清楚正在使用什么。更重要的是,随着您的应用程序变得越来越复杂,您可以更轻松地保持对象的结构和功能的逻辑性和实用性。

关于c++ - 实现模型,结构与类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36671808/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com