【C++】类中public、protected和private访问修饰符详解和示例

前言

在C++中,类是一种用户定义的类型,它允许我们将数据和操作这些数据的函数封装在一起。为了确保这种封装的有效性和数据的安全性,C++提供了三种访问修饰符:public、protected和private。这些修饰符定义了类成员的访问权限,即哪些成员可以被类的外部、类的内部或派生类访问。本文将详细探讨这三种访问修饰符的作用、原理、区别,并通过示例进行说明。

详解

修饰符

public

作用:public修饰的成员可以被类的任何实例、派生类以及类外部的任何代码访问。这些成员构成了类的接口,是类与外部世界交互的桥梁。
示例:通常,类的构造函数、析构函数以及用于设置和获取私有成员状态的公有成员函数都会被声明为public。

protected

作用:protected修饰的成员只能被类本身以及该类的派生类访问,但不能被类的外部代码访问。这提供了一种机制,允许派生类访问和修改基类的某些内部状态,同时保持这些状态对外部世界的隐藏。
示例:在基类中定义的protected成员变量或函数,在派生类中可以直接访问,但在类外部则不可见。

private

作用:private修饰的成员只能被类本身(即类的成员函数、构造函数、析构函数等)访问,不能被类的外部代码或派生类直接访问。这是实现封装和数据隐藏的关键。
示例:类的内部状态(如成员变量)通常会被声明为private,以防止外部代码直接访问和修改这些状态,从而保护类的完整性和数据的安全性。

函数原理

在C++中,成员函数(包括构造函数、析构函数和成员函数)的访问权限也是通过public、protected和private来控制的。这些函数的访问权限决定了它们可以在哪里被调用。例如,一个public成员函数可以被类的任何实例或外部代码调用,而一个private成员函数则只能被类内部的其他成员函数或构造函数/析构函数调用。

区别

访问范围:public成员的访问范围最广,几乎不受限制;protected成员的访问范围次之,仅限于类本身和派生类;private成员的访问范围最窄,仅限于类本身。
设计目的:public成员主要用于定义类的接口;protected成员用于在基类和派生类之间共享数据和方法,同时保持对外部世界的隐藏;private成员则用于封装类的内部实现细节。

示例

#include <iomanip>
#include <iostream>


class
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

木彳

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值