治疗白颠疯的土方:请问多态 函数的重载有什么区别?还有函数的重载和函数模板有什么区别??

来源:百度文库 编辑:查人人中国名人网 时间:2024/05/05 11:37:22
C++
我知道这三个东西是什么,望高手指出它们深层的联系!

函数的重载,虚函数等等都叫做多态。

重载和模板性质差不多,基本就是一个函数,可以用多种参数,比如
void Func(int i);
void Func(long l);
这样就属于重载

模板
template<typename T>
void Fun<T>(T t);
这样定义只写一个,但是有几种调用方式,编译器就会
生成几份函数。
比如
如果调用Fun<int>(10);
就会生成void Fun(int i);
如果调用Fun<long>(10);
就会生产void Fun(long l);

还有一种重载
比如
class parent
{
public:
virtual void Fun()
{
}
};

class child :public parent
{
public:
vritual void Fun()
{
....
}
};

这里在类child中的Fun也是重载

多态是C++最基本,最重要的特性之一,

函数重载是多态性的形式之一.

函数模板是写一次代码,就要以应用到各种类型.
函数重载是函数名相同而参数不同的两个函数.

这些东西你不看书,指望在这儿问一句就会了?