现在的位置: 首页 > 综合 > 正文

函数通用性之重载与(导出模板概念)

2014年07月07日 ⁄ 综合 ⁄ 共 961字 ⁄ 字号 评论关闭

本小节主要是想通过重载来导出模板

首先来熟悉几个概念的东西:

1 什么是重写

2 什么是重载

 

来个小总结吧:

1 成员函数重载特征:

   a 相同的范围(在同一个类中)
   b 函数名字相同
   c 参数不同
   d virtual关键字可有可无
2 重写(覆盖)是指派生类函数覆盖基类函数,特征是:
   a 不同的范围,分别位于基类和派生类中
   b 函数的名字相同
   c 参数相同
   d 基类函数必须有virtual关键字
3 重定义(隐藏)是指派生类的函数屏蔽了与其同名的基类函数,规则如下:
   a 如果派生类的函数和基类的函数同名,但是参数不同,此时,不管有无virtual,基类的函数被隐藏。
   b 如果派生类的函数与基类的函数同名,并且参数也相同,但是基类函数没有vitual关键字,此时,基类的函数被隐藏

 

 

相信对上面的概念都不会很陌生吧!那我们就来进入今天的主题

比如我们想交换两个数据

交换两个整数如下:

#include <iostream>
using namespace  std;
inline void IntSwap(int &a , int & b);
int main()
{
 int a = 3, b = 4;
 IntSwap(a, b);
 cout<<"a:"<<a<<"b:"<<b;
 cout<<endl;
 system("pause");
 return 0;
}
inline void IntSwap(int &a , int & b)
{
 int temp = a;
 a = b;
 b = temp;
}
那么假如我们又要交换两个double类型的的呢
inline void IntSwap(double &a , double & b)
{
 int temp = a;
 a = b;
 b = temp;
}

也可以简单的这样修改,来达到我们的目的是吧,假如我们又要变成char, string .....等,是不是就没那么方便了呢,那么是否没有达到代码的重用呢?

下面我们
来给出模板达到我们的效果

模板是实现类属机制的一种工具,它的功能非常强,它是无约束类属机制和约束类属机制的集合。它可以让用户构造模板函数。

inline void Swap(___ &a , ____ & b)
{
 ___ temp = a;
 a = b;
 b = temp;
}

这个就可以看成上面的一个模板吧!不知道你看了这个例子,入门了么?

 

当然模板远远还不止介绍的这些,不过希望你了解概念,那么下面会更轻松,下面将深入介绍类模板和函数模板

 

 

 

 

抱歉!评论已关闭.