赞
踩
在面向对象的程序设计中,多态可以说是一块基石。在c++中这块基石主要是通过继承和虚函数来实现的,由于这两个机制(继承和虚函数)可能都是运行期进行处理的,因此我们把这种多态称为动态多态。模板中也存在多态机制,但是却不是动态多态,而是静态多态。模板中静态多态简单的理解就是在编译器进行处理,而不是运行期。在学习静态多态之前,先让我们回顾一下动态多态。
-
- class Person {
- public:
- virtual void foot() {
- std::cout << "People are footing";
- }
- };
-
- class Jay :public Person {
- void foot() override{
- std::cout << "Jay sings while walking";
- }
- };
- class Person {
- public:
- void foot() {
- std::cout << "People are footing" << std::endl;
- }
- };
-
- class Jay {
- public:
- void foot() {
- std::cout << "Jay sings while walking" << std::endl;
- }
- };
-
- template<typename Person>
- void foot1(Person& person) {
- person.foot();
- }
-
- template<typename Person1>
- void foot2(Person1& person1) {
- person1.foot();
- }
- int main(void)
- {
- Person person;
- Jay jay;
- foot1<Person>(person);
- foot2<Jay>(jay);
-
- return 0;
- }

Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。