码迷,mamicode.com
首页 > 其他好文 > 详细

两种多态

时间:2015-04-30 17:37:27      阅读:133      评论:0      收藏:0      [点我收藏+]

标签:

多态的字面含义:具有多种不同的形态。
关键字:编译期多态(就是重载或者模板) 和运行期多态


int getMax( int param1, int param2 );
double getMax( double param1, double param2 );这是重载

下面是模板
template<typename T>
T getMax( T param1, T param2 ){
return param1>param2?param1:param2;
}

下面是运行期多态
class Base
{
public:
virtual ~Base(){}
virtual void fun(){ cout<<"Base::fun"<<endl; }
};
class Derived:public Base
{
public:
virtual void fun(){ cout<<"Derived::fun"<<endl;
};
main()
{
Base *pB = new Derived;
pB->fun();
}


应用形式上:
静多态是发散式的,让相同的实现代码应用于不同的场合。
东多态是收敛式的,让不同的实现代码应用于相同的场合。
思维方式上:
静多态是泛型式编程风格,它看重的是算法的普适性。
东多态是对象式编程风格,它看重的是接口和实现的分离度。

 

两种多态

标签:

原文地址:http://www.cnblogs.com/lz20150121/p/4469185.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!