在C++中,如果你想要对其他类的对象数据进行增删改查(CRUD:Create, Read, Update, Delete),有几种常见的方式可以实现。

2024-01-08 17:28:35


在C++中,如果你想要对其他类的对象数据进行增删改查(CRUD:Create, Read, Update, Delete),有几种常见的方式可以实现。以下是几种方法的示例:

1. 使用公共成员变量(不推荐)

直接操作公共成员变量是最直接的方法,但这违反了封装的原则,通常不被推荐。

class ExampleClass {
public:
    int data;
};

int main() {
    ExampleClass obj;
    obj.data = 10; // Create/Update
    int value = obj.data; // Read
    obj.data = 0; // Delete (或设置为特定的“无效”值)
}

2. 使用访问器和修改器(Getter 和 Setter)

这是最常用的方法,通过提供公共接口来访问和修改私有成员变量。

class ExampleClass {
private:
    int data;

public:
    void setData(int d) { data = d; } // Setter
    int getData() const { return data; } // Getter
};

int main() {
    ExampleClass obj;
    obj.setData(10); // Create/Update
    int value = obj.getData(); // Read
    obj.setData(0); // Delete (或设置为特定的“无效”值)
}

3. 使用友元函数或友元类

友元函数或友元类可以访问类的私有和保护成员,这在某些特定情况下很有用。

class ExampleClass {
    friend void friendFunction(ExampleClass&);

private:
    int data;
};

void friendFunction(ExampleClass& obj) {
    obj.data = 10; // Create/Update
    int value = obj.data; // Read
    obj.data = 0; // Delete
}

int main() {
    ExampleClass obj;
    friendFunction(obj);
}

4. 使用成员函数

类可以提供公共成员函数来实现CRUD操作,这些函数可以是简单的访问器/修改器,或者是更复杂的业务逻辑。

class ExampleClass {
private:
    int data;

public:
    void createOrUpdateData(int d) { data = d; }
    int readData() const { return data; }
    void deleteData() { data = 0; }
};

int main() {
    ExampleClass obj;
    obj.createOrUpdateData(10); // Create/Update
    int value = obj.readData(); // Read
    obj.deleteData(); // Delete
}

5. 通过构造函数和析构函数

构造函数和析构函数可以用于创建和删除对象时的初始化和清理。

class ExampleClass {
private:
    int data;

public:
    ExampleClass(int d) : data(d) {} // Create
    ~ExampleClass() { /* 可以在这里进行清理工作 */ } // Delete

    int getData() const { return data; } // Read
    void setData(int d) { data = d; } // Update
};

int main() {
    ExampleClass obj(10); // Create
    int value = obj.getData(); // Read
    obj.setData(20); // Update
    // 对象销毁时会自动调用析构函数
}

在实际的软件开发中,推荐使用封装性强的方法,如访问器和修改器或成员函数,以保护数据的完整性和安全性。直接访问公共成员变量虽然方便,但可能会导致代码难以维护和错误增加。

文章来源:https://blog.csdn.net/qq_21950671/article/details/135461761
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。