封装、继承、多态、抽象

封装

C++ 能够将数据与函数(方法)封装在类(Class)中,对外部提供有限接口,对内部数据进行保护,降低模块耦合,提升维护性。

class People{
    public:
        People();
        ~People();
        virtual void Do() = 0;
    private:
        int age;
        float height, weight;
    protected:
        string name;
};

继承

一个子类能够继承一个父类的属性和方法,子类能够访问父类 publicprotected 中的成员,并且可以重载或者增加新成员,提高代码复用率与拓展性。

class Student:People{
    public:
        Student(float _grade);
        ~Student();
        void Do();
        void ChangeNameTo(string NewName);
    private:
        float grade;
};

class Parent:People{
    public:
        void Do();
        void GiveNameTo(People &_people);
};

多态

一个对象表现出多种形态的特性即为多态,通常由重载虚函数实现。父类(基类)指针能够指向不同的子类(派生类),调用同样方法(同一接口实现不同功能

int main(){
    People *people;

    Student student;
    Parent parent;

    people = &student;
    people -> Do();

    people = &parent;
    people -> Do();

    return 0;
}

抽象

将不同对象的共同特性/特征提取出来形成抽象类,在类中定义数据与接口,不实现具体功能,而是被派生类继承并拓展。

class People{
};

class Male:People{
};

class Boy:Male{
};

class Female:People{
};

class Girl:Female{
};

版权声明: 如无特别声明,本文版权归 Longbin's Tech-Blog 所有,转载请注明本文链接。

(采用 CC BY-NC-SA 4.0 许可协议进行授权)

本文标题:《 C++ 面向对象的四大特性 》

本文链接:https://longbin.tech//c/c++/C++-%E9%9D%A2%E5%90%91%E5%AF%B9%E8%B1%A1%E7%9A%84%E5%9B%9B%E5%A4%A7%E7%89%B9%E6%80%A7.html

本文最后一次更新为 天前,文章中的某些内容可能已过时!