C++修饰符Private和Public的区别

在C++中,private 和 public 是两种访问修饰符,用于控制类成员(包括属性和方法)的访问权限。它们的主要区别在于:

  1. public 访问级别:

    • 在类的外部和内部都可以访问 public 成员。
    • 使用 public 修饰的成员,无论是在类的内部还是外部,都可以自由访问,这意味着任何人都可以从类的对象直接访问和修改这些成员。
  2. private 访问级别:

    • 只有类的内部可以访问 private 成员。
    • 使用 private 修饰的成员,仅限于类的内部访问。类的外部代码不能直接访问这些成员,这有助于隐藏和保护类的内部状态,确保外部代码不能随意修改内部数据结构。

下面是一个简单的例子来说明这两者的用法:

cpp 复制代码
class Car {
public:
    int year;  // 公开访问:任何人都可以直接访问和修改年份
    void drive() {
        cout << "Driving the car" << endl;
    }

private:
    double speed;  // 私有访问:只能在类的内部被访问和修改

    void updateSpeed(double newSpeed) {
        speed = newSpeed;  // 这是一个私有方法,只能在类内部被调用
    }
};

int main() {
    Car myCar;
    myCar.year = 2020;  // 正常访问
    myCar.drive();      // 正常访问

    // myCar.speed = 100; // 错误:speed是私有的,不能在类外部访问
    // myCar.updateSpeed(100); // 错误:updateSpeed是私有的,不能在类外部访问
    return 0;
}

在这个例子中,year 和 drive 方法是公开的,任何外部代码都可以访问。而 speed 属性和 updateSpeed 方法是私有的,它们只能在类 Car 的内部被访问和使用。

使用这些访问修饰符的主要目的是封装,即隐藏类的实现细节并公开一个操作接口,这有助于保护类的数据不被意外修改,同时使得类更易于使用和维护。

相关推荐
熊猫钓鱼>_>19 分钟前
三方库 NDK 原生模块跨平台适配与调试【鸿蒙心迹】
开发语言·华为·ai编程·harmonyos·鸿蒙·openharmony·鸿蒙心迹
A7bert77720 分钟前
【MobileSAM部署至RK3588】环境适配→转换RKNN→开发板部署
c++·人工智能·深度学习·目标检测·ubuntu
HANDY0920026 分钟前
从“不照人”到“剂量达标”:扇叶遮挡式UV-C空气消毒的工程边界与可验证评估框架
开发语言·人工智能·嵌入式硬件·智能家居
青少儿编程课堂36 分钟前
蓝桥杯·全国青少年信息素养大赛·电子学会C/C++考级:分层图最短路解析
c++·python·算法·bfs·信息学竞赛
1024奇点10 小时前
【仓颉语言入门 · 第二篇 第 22 课】
开发语言·ide·开源
Warren2Lynch10 小时前
C4 模型详解:利用 Visual Paradigm 可视化软件架构的综合指南
开发语言·uml
FlightYe11 小时前
视界原理之3D视频(四):裸眼、眼镜和头显
android·linux·c++·3d·ffmpeg·音视频
Knight_AL11 小时前
Java 文件下载时文件名中的 `#` 被转换成 `%23`?一次 URL 编码与解码问题排查
java·开发语言
FRing0312 小时前
vue2干货总结2(v-bind、v-for、v-model、指令修饰符、v-bind操作class和style)
开发语言·前端·vue.js·vue2
by2099912 小时前
C++ 智能指针的所有权与使用
开发语言·c++·经验分享