在c++中取几个封装的例子
时间: 2024-09-19 20:16:59 浏览: 43
在 C++ 中,封装是一种面向对象编程的重要特性,它将数据和操作这些数据的方法组合在一起,隐藏内部细节,只提供有限的访问接口给用户。这里有几个简单的封装例子:
1. **简单数据成员封装**:
```cpp
class BankAccount {
private:
double balance; // 私有变量,防止直接修改
public:
void deposit(double amount) { balance += amount; }
void withdraw(double amount) { if (amount <= balance) balance -= amount; }
double getBalance() const { return balance; } // 使用const修饰避免修改
};
```
在这个例子中,`balance`是私有的,只能通过`deposit()`、`withdraw()`和`getBalance()`这些公共方法来操作。
2. **构造函数和析构函数封装**:
```cpp
class Person {
private:
string name;
int age;
protected:
Person(string n, int a) : name(n), age(a) {}
public:
~Person() {} // 析构函数,用于清理资源
// 公共访问接口
string getName() const { return name; }
int getAge() const { return age; }
};
```
构造函数控制了对象如何初始化,析构函数负责清理内存。
3. **信息隐藏**:
```cpp
class Product {
private:
double price;
protected:
Product(double p) : price(p) {}
public:
virtual double getPrice() const = 0; // 纯虚函数,声明价格获取,子类实现
};
class Book : public Product {
public:
override double getPrice() const override { return price * 1.1; }
};
```
在这里,`price`是私有的,外部无法直接访问,通过`Product`类的纯虚函数`getPrice()`,子类`Book`提供了具体的实现。
阅读全文