首页 > 其他分享 >函数重载

函数重载

时间:2024-05-18 16:54:17浏览次数:32  
标签:const 函数 int fun 重载 return string

一、重载原则

原则:

  1. 不允许两个函数除了返回类型以外其他所有的要素全部相同
  2. 顶层const不影响传入函数的对象,一个顶层const的形参无法与另一个没有顶层const的形参区分。
int fun(const int a);   //const普通变量,这个和下面的是一样的
int fun(int a);

int fun(int* a);        //顶层const,这个和下面是一样的
int fun(int* const a);
  1. 形参是指针或者引用时,底层const修饰的形参可以实现函数重载。
//4个fun函数各不相同
int fun(int &a)
{
    return 1;
}

int fun(const int &a)
{
    return 2;
}

int fun(int *a)
{
    return 3;
}

int fun(const int *a)
{
    return 4;
}


int main()
{
    int b = 10;
    int &a1 = b;
    const int &a2 = b;
    int *a3 = &b;
    const int *a4 = &b;
    std::cout << fun(a1) << std::endl;
    std::cout << fun(a2) << std::endl;
    std::cout << fun(a3) << std::endl;
    std::cout << fun(a4) << std::endl;
    return 0;
}

二、const_cast和重载

const string &shorterString(const string &s1, const string &s2)
{
    return s1.size() <= s2.size() ? s1 : s2;
}

string &shorterString(string &s1, string &s2)
{
    auto &r = shorterString(const_cast<const string &>(s1), 
                            const_cast<const string &>(s2));
    return const_cast<string &>(r);
}

int main()
{
    const string s1("abc");
    const string s2("abcd");
    string s3("asdfgh");
    string s4("asdfghjkl");

    cout << shorterString(s3, s4) << endl;
    return 0;
}

首先将实参转换成const引用类型,然后调用第一个实参为const版本的shorterString函数。接着将返回值强制转换为string的引用类型。

标签:const,函数,int,fun,重载,return,string
From: https://www.cnblogs.com/baobaobashi/p/18199473

相关文章

  • 4、单行函数
    最近项目要用到Oracle,奈何之前没有使用过,所以在B站上面找了一个学习视频,用于记录学习过程以及自己的思考。视频链接:【尚硅谷】Oracle数据库全套教程,oracle从安装到实战应用如果有侵权,请联系删除,谢谢。本文主要讲解以下几点:SQL中不同类型的函数在SELECT语句中使用字......
  • 有关字符串的函数接口
    目录strstr函数,用于从一个字符串中查找子串strtok函数,用于分割字符串strstr函数,用于从一个字符串中查找子串strtok函数,用于分割字符串......
  • Pytorch中torch.max()函数维度的说明
    对于函数torch.max(tensor,dim,keepdim=False),需要厘清两个概念一个是torch.max怎么比较的实际上是取被比较元素对应位置的最大值如果是在一个向量中比较,那每个元素都是【c】的形式,对应位置就是本身比较,宏观来讲就是取该向量最大元素。如果在一个二维矩阵中比较,被比较元素......
  • 农村高中生源转型期提升学生二次函数建模能力的课堂探究
       通过结合具体的数学问题,引导高中生深入分析问题,有效地构建求解问题的数学模型,可以使学生逐步掌握数学问题求解的基本思路以及模型建构的方法与注意事项。但是离开了反复训练,无法从根本上提升高中生的数学建模能力。因此,在平时的高中数学教学中,教师要注意结合数学教学的内......
  • 函数计算助力领健信息为“看牙”注入 AI 活力
    作者:姜伟、龚杨、周韬、王彬发展背景领健成立于2015年,总部位于上海,并在全国设立了20余家分支机构,拥有100项软件著作权、91项注册商标、35项发明专利,致力为口腔诊所、医美机构等消费医疗企业提供经营管理一体化解决方案。领健拥有ISO/IEC27001国内国际双认证、公安部......
  • 函数计算帮助领健为“看牙”注入AI活力
    作者:姜伟,龚杨,周韬,王彬客户介绍和业务背景领健成立于2015年,总部位于上海,并在全国设立了20余家分支机构,拥有100项软件著作权、91项注册商标、35项发明专利,致力为口腔诊所、医美机构等消费医疗企业提供经营管理一体化解决方案。领健拥有ISO/IEC27001国内国际双认证、公安部等保......
  • 函数调用、函数参数、类型提示、名称空间
    【一】函数的调用方法【1】直接调用函数defstudent(name,age):print(f"mynameis{name}andmyageis{age}")直接调用函数student(name='qwer',age=22)【2】用表达式调用函数用一个新变量存储函数的内存地址然后调用defadd(x,y):returnx+yresult=......
  • 自定义数据类型、标量值、内嵌表值、多语句表值函数的操作
    自定义数据类型、标量值、内嵌表值、多语句表值函数的操作自定义数据类型、标量值、内嵌表值、多语句表值函数的操作  合集-数据库知识(7) 1.SQLServer实战一:创建、分离、附加、删除、备份数据库04-242.SQLServer实战二:创建、修改、复制、删除数据库表并加以数据......
  • 欧拉函数、整除分块和扩展欧几里得
    欧拉函数欧拉函数(写作\(\varphi(x)\)),表示\(i\in[1,x]且\gcd(i,x)=1\)的\(i\)的数量。乍一看好像很难求,但我们先考虑最简单的情况,即\(x\in\mathbb{P}\)(\(\mathbb{P}\)表示质数集)的情况。首先很容易看出\(\varphi(x)=x-1\),因为\(x\in\mathbb{P}\),所以\(\foralli......
  • 使用函数计算FC的主要步骤
    使用函数计算FC的主要步骤初步了解函数计算FC的运行原理和使用流程以后,小陈准备动手开始使用函数计算FC来实现业务需求。在动手前,为了避免走错路耽误了功能的上线进度,小陈决定再找大刘确认一下。小陈:师傅,我了解了函数计算FC的大致使用流程,感觉基础功能使用起来应该不复杂。大刘......