吃透C++多态+案例实现

📅 2026/7/23 5:41:26
吃透C++多态+案例实现
前言想要学明白多态得先学分装和继承。多态的概念同一个行为作用于不同对象产生不同的实现效果。简单来讲就是多个对象可以共用一个特性用同一个接口实现每个特性实现的具体情况由对象决定。比如猫和狗都会叫叫这个行为就是一个特性猫是喵狗是汪由实际对象决定。多态的作用1. 代码超级好扩展以后新增「猪、鸡、鸭」类不用改原有代码只需要新建子类、重写方法即可符合开闭原则。2. 统一调用接口外部只需要认识父类接口不用管是猫是狗代码简洁易懂。3. 解耦代码把「行为定义」和「行为实现」分开代码维护成本极低。耦合度指的是代码内部关联程度的大小。如果耦合度高改这处则容易影响别处易出错。多态的初步实现一、三个必要前提有继承重写父类虚函数父类指针指向子类对象二、简单代码#includeiostreamusingnamespacestd;// 父类structAnimal{// 虚函数开启多态virtualvoidshout(){cout动物发出声音endl;}};// 子类猫classCat:publicAnimal{public:// 重写虚函数voidshout()override{cout喵~endl;}};// 子类狗classDog:publicAnimal{public:voidshout()override{cout汪endl;}};intmain(){// 父类指针指向子类对象向上转型Animal*a1newCat();Animal*a2newDog();// 同一个接口 shout()不同对象不同实现 → 多态a1-shout();// 喵~a2-shout();// 汪deletea1;deletea2;return0;}三、 三个简单多态案例动物园班级计算器