当前位置: 首页> 健康> 科研 > gooood谷德设计网站_三维家软件培训班_百度网站怎么提升排名_百度指数搜索榜

gooood谷德设计网站_三维家软件培训班_百度网站怎么提升排名_百度指数搜索榜

时间:2025/7/21 7:51:55来源:https://blog.csdn.net/qq_59757948/article/details/143253918 浏览次数:0次
gooood谷德设计网站_三维家软件培训班_百度网站怎么提升排名_百度指数搜索榜

第31讲 多态

基本概念

 多态(Polymorphism)是面向对象编程(OOP)的一个重要特性。在 C++ 中,多态是指用同一个函数名或操作符在不同的上下文中可以表现出不同的行为。简单来说,多态允许不同的对象对同一消息(函数调用)做出不同的响应。

多态的类型

(1)编译时多态(静态多态)

①函数重载(Function Overloading):在同一个作用域内,可以定义多个同名函数,但是它们的参数列表(参数个数、类型、顺序)不同。   

示例如下:

#include <iostream>
using namespace std;//静态多态
//函数名称重载
int add(int a, int b)
{return a + b;
}double add(double a, double b)
{return a + b;
}int main()
{int x = 0, y = 10;double pai = 3.14, e = 2.72;int    result0 = add(x, y);double result1 = add(pai,e);std::cout<< result0 <<endl;std::cout << result1 <<endl;system("pause");return 0;
}

②运算符重载(Operator Overloading):C++ 允许重新定义运算符的操作,使其适用于用户自定义的数据类型。

示例如下:

#include <iostream>
using namespace std;//静态多态
//重载运算符"+"实现复数相加
class Complex {
private:double real;double image;public://含有初始化列表的有参构造Complex(double r=0,double i=0):real(r),image(i) {}Complex operator + (const Complex& other) {Complex result;result.image = this->image + other.image;result.real = this->real + other.real;return result;}void printInfo(){cout << "Complex = " << this->real << "+" << this->image << "j" << endl;}
};int main()
{Complex c1(1, 2);Complex c2(3, 4);Complex c3 = (c1 + c2);c3.printInfo();system("pause");return 0;
}

(2)运行时多态(动态多态)

虚函数(Virtual Function)和覆盖(Override):在基类中定义一个虚函数,然后在派生类中重新定义这个虚函数(函数签名相同),当通过基类指针或引用调用这个函数时,会根据对象的实际类型(是基类对象还是派生类对象)来决定调用基类的函数还是派生类的函数。

代码示例:

#include <iostream>
using namespace std;class Shape {
public:virtual void draw(void){std::cout << "画了一个图形" << endl;}
};class Circle : public Shape {
public:void draw(void) override{std::cout << "画了一个圆形" << endl;}};int main()
{Shape* shapePtr = new Circle;  //多态机制让基类指针可以指向了派生类空间shapePtr->draw();delete shapePtr;system("pause");return 0;
}

作用

为什么使用多态?
灵活性 :允许我们编写可以处理不确定类型的对象的代码。
可扩展性 :我们可以添加新的派生类而不必修改使用基类引用或指针的代码。
接口与实现分离 :我们可以设计一个稳定的接口,而将具体的实现留给派生类去处理

第32讲 抽象类

关键字:gooood谷德设计网站_三维家软件培训班_百度网站怎么提升排名_百度指数搜索榜

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: