C++面向对象:详解public、protected与private的用法与继承特性
5星 · 超过95%的资源 6 浏览量
更新于2024-08-31
收藏 55KB PDF 举报
深入理解C++中public、protected及private用法是C++面向对象编程中的关键概念,这三个关键字用于控制类成员的访问权限。它们的存在确保了封装性和信息隐藏,是类设计中的核心原则。
首先,让我们探讨public和private的作用。在C++中,public成员是对外部代码(即类外部)公开的,允许直接访问和操作,例如创建类的对象时可以直接赋值或调用其公共方法。另一方面,private成员则是私有的,只允许类内的函数(包括成员函数和友元函数)访问,外部代码无法直接访问这些内部细节,实现了数据的封装,防止意外修改。
接下来是protected成员,它们介于public和private之间。保护成员同样对外部代码不可见,但在派生类中却是可访问的。这种设计允许子类继承并重用父类的某些特性,同时保持一定的封装性,防止过度暴露内部结构。
以下是一段示例代码,展示了这三个关键字的实际应用:
```cpp
class A {
public:
int a; // 公共成员,类外可访问
A() {
a1 = 1;
a2 = 2;
a3 = 3;
a = 4;
}
void fun() {
cout << a << endl; // 正确,通过对象直接访问
cout << a1 << endl; // 正确,类内访问
cout << a2 << endl; // 正确,类内访问
cout << a3 << endl; // 错误,类外不能访问
}
public:
int a1; // 公共成员
protected:
int a2; // 保护成员,派生类可访问
private:
int a3; // 私有成员,仅类内访问
};
int main() {
A itema;
itema.a = 10; // 正确,公共成员
itema.a1 = 20; // 正确,公共成员
itema.a2 = 30; // 错误,不能直接访问保护成员
itema.a3 = 40; // 错误,不能直接访问私有成员
system("pause");
return 0;
}
在继承中,有三种类型的继承方式:
1. Public继承:父类的public和protected成员在子类中变为public,而private成员保持不变,外部依然无法访问。
2. Protected继承:子类可以访问父类的protected成员,但外部代码仍不能直接访问。
3. Private继承:子类完全继承父类的私有成员,其他成员保持原样,外部代码对它们是不可见的。
理解并熟练运用public、protected和private关键字,有助于编写更安全、可维护的C++面向对象代码。在设计类时,应权衡信息暴露的必要性和封装性,确保代码的可读性和可扩展性。
点击了解资源详情
点击了解资源详情
点击了解资源详情
2021-01-20 上传
2023-04-01 上传
2023-07-20 上传
2023-04-11 上传
2023-03-09 上传
2023-03-28 上传
weixin_38570854
- 粉丝: 5
- 资源: 931
最新资源
- real-world-react:从头开始的真实世界的React
- aws-code-star:由AWS CodeStar创建的存储库
- 448_Project_1
- lerna-flow
- 布兰迪
- logistics:基于Spring+MyBatis的物流系统,数据库为oracle
- StoreMetadata:hamarb123商店的元数据
- Python库 | msgraphy-0.3.4.tar.gz
- Google Translation API:Google翻译API-开源
- LRH
- ImportantDays:重要日子 - 一个 Android 应用程序
- Shalini-Blue1:蓝色测试1
- mixins:Holochain应用程序(例如用户或锚点)的mixin zomes的集合。 这些都经过审查。 文档在Wiki中
- awesome-blazor-browser:Blazor WebAssembly应用程序,用于浏览“ Awesome Blazor”资源
- 电子功用-双轴承电气柜集线束胶带缠绕系统
- To1 Express-crx插件