• C++的可见性


    可见性定义

    1、可见性是一个属于面向对象编程的概念,它指的是类的某些成员或方法实际上有多可见
    2、可见性是指谁能看到它们,谁能调用它们,谁能使用它们
    3、可见性是对程序实际运行方式完全没有影响的东西,对程序性能或类似的东西也没有影响,它纯粹是语言中存在的东西,让你写出更好的代码或者帮助你组织代码

    C++中有三个基础的可见性修饰符,private、protected、public

    代码案例: 

    1. class Entity
    2. {
    3. private:
    4. int X, Y;
    5. void print() { }
    6. public:
    7. Entity()
    8. {
    9. X = 0;
    10. print();
    11. }
    12. };
    13. class Player : public Entity
    14. {
    15. public:
    16. Player()
    17. {
    18. X = 2;
    19. print();
    20. }
    21. };
    22. int main()
    23. {
    24. Entity e;
    25. e.X = 2; // private和protected仍然不能在main()中可见
    26. e.print(); // private和protected仍然不能在main()中可见,这在类外,不是Entity的子类
    27. cin.get();
    28. return 0;
    29. }

    private: 意味着只有这个Entity类可以访问这些变量,意味着它可以读取和写入它们,但是也有friend关键字,它可以让类或者函数成为类Entity的朋友(友元)。

    friend的意思是友元,实际上可以从类中访问私有成员

    类中默认的可见性时私有的

    1. class Entity
    2. {
    3. protected:
    4. int X, Y;
    5. void print() { }
    6. public:
    7. Entity()
    8. {
    9. X = 0;
    10. print();
    11. }
    12. };
    13. class Player : public Entity
    14. {
    15. public:
    16. Player()
    17. {
    18. X = 2;
    19. print();
    20. }
    21. };
    22. int main()
    23. {
    24. Entity e;
    25. e.X = 2; // private和protected仍然不能在main()中可见
    26. e.print(); // private和protected仍然不能在main()中可见,这在类外,不是Entity的子类
    27. cin.get();
    28. return 0;
    29. }

    protected: protected比private更可见,比public更不可见

    protected的意思是这个Entity类和层次结构中所有的子类也可以访问这些符号

  • 相关阅读:
    LLM 推理和应用 开源框架梳理
    0 基础 Java 自学之路(2021年最新版)
    MongoDB JAVA 管道聚合查询 aggregate
    网络安全(补充)
    Spring注解详解:@ComponentScan自动扫描组件使用
    CentOS安装双版本MySQL
    Makefile
    Ps:图像大小
    企业化运维(2)_nginx
    干货|工作中要使用Git,看这篇文章就够了
  • 原文地址:https://blog.csdn.net/weixin_49891405/article/details/136428846