c++函数重载

函数重载可以使用多个同名的函数,示例如下:

#include<iostream>//函数重载是一个函数用多个函数的形式进行调用
using namespace std;
unsigned long left(unsigned long num,unsigned ct);//重载函数
char *left(const char *str,int n = 1);//用const修饰的形参
int main()
{
    char * trip = "Hawaii!!";//用一个字符串指针变量
    unsigned long n = 12345678;
    int i;
    char *temp;
    for(i = 1;i < 10; i++)
    {
        cout<<left(n,i)<<endl;//调用函数left,十次
        temp = left(trip,i);
        cout<<temp<<endl;
        delete[]temp;//指针会开辟一个新的内存,需要删除
    }
    return 0;
}
unsigned long left(unsigned long num,unsigned ct)//数字拆解
{
    unsigned digits = 1; 计数
    unsigned long n = num;
    if(ct == 0||num == 0)
    return 0;
    while(n/=10)
    digits ++;
    if(digits > ct)
    {
        ct = digits - ct;
        while(ct--)
        num/=10;
        return num;
    }
    else
    return num;
} 
char * left(const char *str,int n)//会自动匹配一个字符串变量的函数,首先分析形参,左为字符串,右为字符串的长度
{
    if(n<0)//如果字符串的长度已经变为小于0
    n = 0;
    char *p = new char[n+1];//开辟一个新的字符数组
    int i;
    for(i = 0;i < n&& str[i]; i++)
    {
        p[i] = str[i];//将字符串拷贝到新开辟的数组中
    } 
    while(i<=n)
    {
        p[i++] = '\0';//因为是新开辟的数组,需要加上终止符号
    }
    return  p;
}

函数重载虽然很诱人,但是不能滥用。仅当函数基本上执行相同的任务时,但是用不同形式的数据时,才应该使用函数重载。

  • 7
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

forget hurt

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值