C++:数据封装

文摘   2024-08-16 07:30   内蒙古  

在C++中,数据封装是面向对象编程中的一个重要概念,它通过将数据和操作数据的函数打包在一起,实现了数据的隐藏和保护。数据封装有助于实现数据的安全性和模块化,同时提供了更好的代码组织和维护性。

数据封装的实现:

数据封装通过访问修饰符(public、private、protected)来实现,其中:

  • public:公共成员,可以被类的外部访问。

  • private:私有成员,只能在类的内部访问。

  • protected:受保护成员,可以被派生类访问。

示例:

#include <iostream>

class Employee {
private:
    std::string name;
    int salary;

public:
    void setName(const std::string& n) {
        name = n;
    }

    std::string getName() {
        return name;
    }

    void setSalary(int s) {
        if (s > 0) {
            salary = s;
        } else {
            std::cout << "Salary must be positive." << std::endl;
        }
    }

    int getSalary() {
        return salary;
    }
};

int main() {
    Employee emp1;
    emp1.setName("Alice");
    emp1.setSalary(5000);

    std::cout << "Employee Name: " << emp1.getName() << std::endl;
    std::cout << "Employee Salary: $" << emp1.getSalary() << std::endl;

    // 试图直接访问私有成员会导致编译错误
    // std::cout << emp1.name << std::endl;

    return 0;
}

在上面的示例中,Employee类封装了namesalary两个私有成员变量,并提供了公共的接口函数setNamegetNamesetSalarygetSalary来操作这些数据。外部代码只能通过这些接口函数来访问和修改数据,而不能直接访问私有变量。

优点:

  1. 「数据安全性」:私有成员变量只能在类的内部访问和修改,避免了外部直接操作数据,提高了数据的安全性。

  2. 「封装性」:封装数据和操作数据的函数在一起,提高了代码的模块化和可维护性。

  3. 「灵活性」:封装使得类的内部实现细节可以被更改而不影响外部代码,从而提高了代码的灵活性和可扩展性。


兄弟嵌入式
从入门到精通,学习并分享嵌入式软、硬件的知识。
 最新文章