引言
在C++中,多态、继承和封装是面向对象编程(OOP)的三大核心特性。它们共同支持了代码的复用、扩展和维护。本文将深入解析这三个特性的原理,并通过示例展示它们在C++中的应用。
封装(Encapsulation)
原理
封装是一种将数据和操作数据的函数绑定在一起,形成一个不可分割的整体(即类)的技术。它隐藏了对象的内部实现细节,仅对外公开接口(public成员函数),从而提高了数据的安全性,并简化了对象的使用。
示例
#include <iostream>
using namespace std;
class Account {
private:
double balance;
public:
Account(double initialBalance) : balance(initialBalance) {
}
void deposit(double amount) {
if (amount > 0) {
balance += amount;
}
}
double getBalance() const {
return balance;
}
};
int main() {
Account myAccount(100.0);
myAccount.deposit(50.0);
cout << "Balance: " << myAccount.getBalance() << endl;
return 0;
}
继承(Inheritance)
原理
继承允许我们定义一个基于现有类的类(称为子类或派生类),从而复用和扩展现有类的功能。子类可以继承父类的属性和方法,也可以添加新的属性和方法或重写(Override)继承的方法。
示例
#include <iostream>
using namespace std;
class Vehicle {
protected:
string brand;
public:
Vehicle(string b)