公有成员和私有成员:访问控制
在类中,我们可以使用访问修饰符(access specifiers)来控制类成员的访问级别。C++ 中主要的访问修饰符有:
public
: 公有成员可以在类的内部和外部访问。通常用于定义类的接口。private
: 私有成员只能在类的内部访问。用于隐藏类的内部实现细节,实现数据封装。protected
: 受保护的成员可以在类的内部以及派生类中访问(将在继承章节介绍)。
封装性: 使用私有成员是实现封装性的关键。通过将数据设为私有,我们可以防止外部代码直接修改对象的状态,并通过公有的成员函数提供受控的访问方式。
代码示例:
c++
#include <iostream>
#include <string>
class BankAccount {
public:
// 公有成员函数,用于操作私有成员
void deposit(double amount) {
balance += amount;
}
void withdraw(double amount) {
if (balance >= amount) {
balance -= amount;
} else {
std::cout << "余额不足!" << std::endl;
}
}
double getBalance() const {
return balance;
}
private:
// 私有成员变量,存储账户余额
double balance = 0.0;
};
int main() {
BankAccount myAccount;
myAccount.deposit(1000);
myAccount.withdraw(200);
std::cout << "账户余额:" << myAccount.getBalance() << std::endl;
// 无法直接访问私有成员变量
// myAccount.balance = -100; // 编译错误
return 0;
}
总结:
public
成员定义了类的外部接口。private
成员隐藏了类的内部实现,提高了代码的健壮性和可维护性。