标签:面向对象 说话 int 对象 基本 name 调用 oid 函数返回值
多态的基本概念:
多态是C++面向对象三大特性之一
多态分为两类
1、静态多态: 函数重载 和 运算符重载属于静态多态,复用函数名 ,那么这个我们之前都有用到过
2、动态多态: 派生类和虚函数实现运行时多态
静态多态和动态多态区别:
1、静态多态的函数地址早绑定 - 编译阶段确定函数地址
2、动态多态的函数地址晚绑定 - 运行阶段确定函数地址
示例代码:
#include<iostream>
#include<string>
using namespace std;
class Animal {
public:
virtual void speak() { // 进行virtual修饰成员函数,变成虚函数,那么编译器在编译的时候就不能确定函数调用了。
cout << "动物在说话" << endl;
}
};
class Dog :public Animal{
public:
void speak() {
cout << "小狗在说话" << endl;
}
};
class Cat :public Animal {
public:
void speak() {
cout << "小猫在说话" << endl;
}
};
void aaa(Animal & animal) {
animal.speak();
}
void test01() {
Cat c1;
aaa(c1);
Dog d1;
aaa(d1);
}
int main() {
test01();
system("pause");
return 0;
}
总结:
多态满足的条件:
1、有继承关系
2、子类重写父类中的虚函数
多态使用条件:
1、父类指针或引用指向子类对象
重写:函数返回值类型 函数名 参数列表 完全一致称为重写
标签:面向对象 说话 int 对象 基本 name 调用 oid 函数返回值
原文地址:https://www.cnblogs.com/zpchcbd/p/11870079.html