暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

C++进阶学习:第二节-访问修饰符

Cpp入门到精通 2024-01-25
34

点击蓝字 关注我们


c++进阶学习

第二节 访问修饰符


      数据封装是面向对象编程中的一个重要概念,它涉及将数据(变量)和操作数据的方法(函数)组合在一个单一的单元(类)中。封装通过使用访问修饰符(public、private、protected)来实现。一般来说,类的数据成员(变量)通常被声明为私有(private),而类的成员函数提供对这些私有数据的访问和操作。

    class Student
    {
    private:
    //私有成员
    public:
    //公有成员
    protected:
    //受保护成员
    };

    公有成员(public)

    public用于定义类的成员(变量和函数)的公共访问权限。成员声明为 public 时,它们可以在类的内部和外部被访问。这样的成员对于类的用户是可见的,可以被外部代码直接访问。

      #include<iostream>
      using namespace std;
      class Student
      {
      public:
      int sid;
      string name;
      int score;
      };
      int main()
      {
      Student s1;
      s1.sid = 202101;
      s1.name = "Rose";
      s1.score = 99;
      cout << "学号:" << s1.sid << "\t"
      << "姓名:" << s1.name << "\t"
      << "分数:" << s1.score << endl;
      system("pause");
      return 0;
      }

      sid,name,score是一个公共数据成员,可以在类的外部直接访问,可以不使用任何成员函数来设置和获取公有变量的值。

        学号:202101    姓名:Rose      分数:99

        私有成员(private)

        private用于定义类的成员(变量和函数)的私有访问权限。当成员声明为 private 时,它们只能在类的内部被访问,外部的代码无法直接访问这些私有成员。

          #include<iostream>
          using namespace std;
          class Student
          {
          int score;
          public:
          int sid;
          string name;
          void setscore(int sscore)// 公有成员函数,用于设置和获取私有数据
          {
          score = sscore;
          }
          int getscore()
          {
          return score;
          }
          };
          int main()
          {
          Student s1;
          s1.sid = 202101;
          s1.name = "Rose";
            s1.setscore(98);//需要使用成员函数设置成绩
          cout << "学号:" << s1.sid << "\t"
          << "姓名:" << s1.name << "\t"
          << "分数:" << s1.getscore() << endl;//使用成员函数得到成绩
          system("pause");
          return 0;
          }

          Student类有三个数据成员(sid
          name
          score),其中score是私有数据。类外不能直接访问,我们提供了公有的成员函数用于设置和获取私有数据。这样,外部的代码不能直接访问这些数据成员,而是通过类的接口来进行访问,实现了数据封装。

            学号:202101    姓名:Rose      分数:98

            受保护成员(protected)

            protected用于定义类的成员(变量和函数)的受保护访问权限。当成员声明为 protected 时,它们可以在类的内部被访问,同时也可以被派生类访问。但是,外部的代码无法直接访问这些受保护的成员。

              #include<iostream>
              using namespace std;
              #include<string>
              class Dad {
              public:
              string PublicData;
              protected:
              string ProtectedData;
              private:
              string PrivateData;
              };
              class SON :public Dad
              {
              public:
              void setProtectedData(string SetData2)
              {
              ProtectedData = SetData2;
                }
              string getProtectedData(void)
              {
              return ProtectedData;
              }
              };
              int main()
              {
              SON son;
              son.setProtectedData("SetData2");
              cout <<son.getProtectedData() << endl;
              system("pause");
              return 0;
              }

              ProtectedData是一个受保护的数据成员,只能在类的内部和派生类中访问。同样,setProtectedDatagetProtectedData是受保护的成员函数,也可以在类的内部和派生类中被调用。

                SetData2

                下节中会具体讲到子类与父类继承中的关系。




                END

                往期推荐

                C++进阶学习:第一节-面向对象编程

                c++基础学习-目录

                文章转载自Cpp入门到精通,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

                评论