直接操作公共成员变量是最直接的方法,但这违反了封装的原则,通常不被推荐。
class ExampleClass {
public:
int data;
};
int main() {
ExampleClass obj;
obj.data = 10; // Create/Update
int value = obj.data; // Read
obj.data = 0; // Delete (或设置为特定的“无效”值)
}
这是最常用的方法,通过提供公共接口来访问和修改私有成员变量。
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 (或设置为特定的“无效”值)
}
友元函数或友元类可以访问类的私有和保护成员,这在某些特定情况下很有用。
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);
}
类可以提供公共成员函数来实现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
}
构造函数和析构函数可以用于创建和删除对象时的初始化和清理。
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
// 对象销毁时会自动调用析构函数
}
在实际的软件开发中,推荐使用封装性强的方法,如访问器和修改器或成员函数,以保护数据的完整性和安全性。直接访问公共成员变量虽然方便,但可能会导致代码难以维护和错误增加。