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

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

Cpp入门到精通 2024-01-24
77

点击蓝字 关注我们


c++进阶学习

第一节 面向对象编程


      C++在C语言的基础上增加了面向对象编程,是一种支持面向对象编程(OOP)范式的编程语言。它将程序看作一组相互关联的对象,每个对象都是一个实体,具有数据和相关的操作。

类和对象


类是面向对象编程的基本概念之一。它是一种用户定义的数据类型,可以包含数据成员成员函数。类是对象的蓝图,描述了对象的属性和行为。

定义一个类的方法是使用关键字class,然后指定类的名称,主体包含类的成员变量和成员函数。

    //定义一个类
    class Student
    {
    public:
    //数据成员
    string name;
    int sid;
    int score;
    //成员函数
    void Showstudent()
    {
    cout<< "name:"<<name<<"\t"
    <<"sid:"<<sid<<"\t"
    <<"score:"<<score << endl;
    }
    };

    关键字public确定了类成员的访问属性。在类对象作用域内,公共成员在类的外部是可访问的。访问属性还有private和protected,之后会涉及到。


    对象是类的实例。通过类创建的对象可以访问类中定义的数据成员和成员函数。对象的公共数据成员用直接成员访问运算符 (.)来访问。

      int main()
      {
      Student s1;//创建对象
      // 访问数据成员并设置其值
      s1.name = "Rose";
      s1.sid = 202101;
      s1.score = 98;
      // 调用成员函数
      s1.Showstudent();
      system("pause");
      return 0;
      }

      结果如下:

        name:Rose       sid:202101      score:98

        面向对象具有三大特性


        封装: 封装是将数据和与数据相关的操作封装在一个单一的单元中(类)的概念。通过将数据隐藏在类的内部,限制对数据的直接访问,只允许通过类的接口进行访问,提高了代码的安全性和可维护性。

          class Student
          {
          private:
          char sgrade;//设置一个数据为私有属性
          public:
          void setgrade(char grade) {
          sgrade = grade;
          }//通过公共接口来访问或修改数据
          char getgrade() {
          return sgrade;
          }
          };

          继承:继承允许一个类(派生类)使用另一个类(基类)的属性和方法。使用表示继承关系。提高代码的重用性和扩展性,通过创建派生类来继承基类的属性和方法,同时可以在派生类中添加、修改或覆盖特定功能。在后面会具体讲到。

            class Dad//父类(基类)
            {
            public:
            void showmessage() {
            cout << "Dad message" << endl;
            }
            };
            class Son:public Dad//Son是子类(派生类)
            {
            public:
            void showSonmessage()
            {
            cout << "Son message" << endl;
            }
            };

            多态:多态是允许使用一个实体(如方法、函数或操作符)的多种形式的概念。提高代码的灵活性和可扩展性。通过多态,可以使用相同的接口调用不同的对象,根据上下文执行不同的操作。多态分为编译时多态(静态多态性)和运行时多态(动态多态性)。


            编译时多态:

              class Calculator {
              int add(int a, int b) {
              return a + b;
              }


              double add(double a, double b) {
              return a + b;
              }
              }
              Calculator 类中有两个名为 add 的方法,分别接受不同类型的参数,编译器会根据调用时提供的参数类型选择调用哪个方法。

              运行时多态:

                class Animal {
                public:
                void MakeSound() {
                cout << "make generic sound" << endl;
                }
                };
                class Cat :public Animal {
                void MakeSoubd() {
                cout << "喵" << endl;
                }
                };
                class Dog :public Animal {
                void MakeSound() {
                cout << "汪" << endl;
                }
                };

                Dog 和Cat类都继承自Animal类并重写了MakeSound方法。

                这些特性一起提供了一种组织和设计代码的方法,使得代码更具有模块化、可维护性和可扩展性。



                END

                往期推荐

                C++基础学习:第十三节-引用

                C++基础学习:第十二节-基本输入输出

                C++基础学习:第十一节-结构体基础

                C++基础学习:第十节-指针与函数

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

                评论