美文网首页
02-函数重载

02-函数重载

作者: _东阁堂主_ | 来源:发表于2019-02-02 06:39 被阅读0次

写在前面

作为移动端的开发语言,新秀们是支持运算符重载的,老一辈语言是不支持的。先透漏一点。
/*
 C语言不支持运算符重载
 java中确实没有云运算符重载,唯一例外是String里面的=和+ String类的"=","+","+=",看似运算符重载,实际不是,只是在java编译器里做了一点手脚
 OC语言不支持运算符重载
 
 swift 支持运算符重载
 kotlin 支持运算符重载
 C++  支持运算符重载 😏
 */

名词解释

◼规则
函数名相同 参数个数不同、参数类型不同、参数顺序不同
◼注意
返回值类型与函数重载无关 调用函数时,实参的隐式类型转换可能会产生二义性
◼本质
采用了name mangling或者叫name decoration技术
✓ C++编译器默认会对符号名(变量名、函数名等)进行改编、修饰,有些地方翻译为“命名倾轧” ✓ 重载时会生成多个不同的函数名,不同编译器(MSVC、g++)有不同的生成规则

上代码

将main.m 改为mian.mm 文件
C++ 如何定义函数
void hehehe() {
    cout << "hehehe() " << endl;
}
上面定义了名称为hehehe的函数,函数体就是打印一下函数名,看着后面部分和swift一样,
(不好意思,暴露了能力--😏,我写了两年多的swift了--从2.0就入坑了)
对就是这么简单与随意。
看下完整的代码
#include <iostream>
using namespace std;

// hehehe_v
void hehehe() {
    cout << "hehehe() " << endl;
}

// hehehe_i
void hehehe(int a) {
    cout << "hehehe(int a) " << a << endl;
}

// hehehe_l
void hehehe(long a) {
    cout << "hehehe(long a) " << a << endl;
}

// hehehe_d
void hehehe(double a) {
    cout << "hehehe(double a) " << a << endl;
}

// main
int main() {
    hehehe();
    hehehe(10);
    hehehe(10l);
    hehehe(10.1);
}
看看打印结果:
hehehe() 
hehehe(int a) 10
hehehe(long a) 10
hehehe(double a) 10.1
嗯嗯,没问题,似乎如喝到了小时的冰水,这感觉爽爽的。

完整代码demo,请移步GitHub:DDGLearningCpp

当然C++大神就绕吧,非喜勿喷,毕竟这是个人的学习笔记📒

相关文章

  • 02-函数重载

    写在前面 名词解释 上代码 完整代码demo,请移步GitHub:DDGLearningCpp 当然C++大神就绕...

  • Cocos2dx之C++基础(四)

    函数重载函数不以返回值来区分重载函数函数不以参数名来区分重载函数使用重载函数的时候不要引起二义性结构函数也可以重载...

  • [进阶]C++:函数重载

    定义重载函数 重载函数是函数名相同但是参数列表不同的函数 重载和const形参 const_cast 在重载函数中...

  • 第八章 函数探幽(4)函数重载

    (四)函数重载 (1)函数重载的含义是可以有多个重名的函数,因此需要对函数进行重载。可以通过函数重载来设计一系列同...

  • Vue3源码中的TypeScript重载函数的作用

    TypeScript重载函数的作用案例 C++中的一个概念(百度百科): 函数重载一般指重载函数。 重载函数是函数...

  • C++之函数重载(下)

    重载与指针 函数重载遇上函数指针将重载函数名赋值给函数指针时根据重载规则挑选与函数指针参数列表一致的侯选者严格匹配...

  • 2.C++对C的扩展

    重载(overload) C++中,引用了函数重载的概念,函数名同名,参数列表不同形成重载。重载规则: 函数名相同...

  • operator-()

    负号重载成员函数友元函数负号重载函数三种方式都可

  • C++ - 函数重载

    函数重载:一个或者多个函数,名字相同,然而参数个数或者参数类型不相同,这叫做函数的重载。 举例: 函数重载使得函数...

  • Callback / Callable 类型

    重载函数,和php的伪重载函数 重载函数a. c++允许在同一范围中声明几个功能类似的同名函数,但是这些同名函数的...

网友评论

      本文标题:02-函数重载

      本文链接:https://www.haomeiwen.com/subject/dcidsqtx.html