如何将多态(一)的概念应用于复杂编程场景中?

2026-04-12 05:090阅读0评论SEO资讯
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计461个文字,预计阅读时间需要2分钟。

如何将多态(一)的概念应用于复杂编程场景中?

多态+多态就是多种形态,具体点就是当不同的对象完成时会产生不同的状态。+把virtual+加在一个虚函数的前面,我们称它为虚函数。+虚继承和虚函数没有关系。+函数名相同,参数列表。

多态

多态就是多种形态,具体点就是当不同的对象去完成时会产生不同的状态。

virtual加在一个虚函数的前面,我们叫做虚函数。

虚继承和虚函数没有关系。

函数名相同,参数列表相同他们叫做重写或者覆盖,这里没有重载的关系,重载必须在同一个作用域。

#include <iostream> using namespace std; class Person { public: virtual void Buyticket() { cout << "买票-全价" << endl; } }; class Student :public Person { public: //重写/覆盖 virtual void Buyticket() { cout << "买票-半价" << endl; } }; void Func(Person& p) { p.Buyticket(); } int main() { Student s; Person p; Func(s); Func(p); return 0; }

构成多态以后传父类调用的是父类的虚函数,传子类调用的是子类的虚函数。

Func函数参数中既可以传父类的对象也可以传子类的对象。

多态的两个条件:1.虚函数的重写,三同(函数名、参数、返回值);2.父类的指针或者引用去调用。

阅读全文

本文共计461个文字,预计阅读时间需要2分钟。

如何将多态(一)的概念应用于复杂编程场景中?

多态+多态就是多种形态,具体点就是当不同的对象完成时会产生不同的状态。+把virtual+加在一个虚函数的前面,我们称它为虚函数。+虚继承和虚函数没有关系。+函数名相同,参数列表。

多态

多态就是多种形态,具体点就是当不同的对象去完成时会产生不同的状态。

virtual加在一个虚函数的前面,我们叫做虚函数。

虚继承和虚函数没有关系。

函数名相同,参数列表相同他们叫做重写或者覆盖,这里没有重载的关系,重载必须在同一个作用域。

#include <iostream> using namespace std; class Person { public: virtual void Buyticket() { cout << "买票-全价" << endl; } }; class Student :public Person { public: //重写/覆盖 virtual void Buyticket() { cout << "买票-半价" << endl; } }; void Func(Person& p) { p.Buyticket(); } int main() { Student s; Person p; Func(s); Func(p); return 0; }

构成多态以后传父类调用的是父类的虚函数,传子类调用的是子类的虚函数。

Func函数参数中既可以传父类的对象也可以传子类的对象。

多态的两个条件:1.虚函数的重写,三同(函数名、参数、返回值);2.父类的指针或者引用去调用。

阅读全文