C++内联函数、引用变量及函数重载怎么使用
导读:本文共1857字符,通常情况下阅读需要6分钟。同时您也可以点击右侧朗读,来听本文内容。按键盘←(左) →(右) 方向键可以翻页。
摘要:";appled;print(a);print(b);print(c);print(d);print(d,"Alice",250);}voidprint(inta){cout<<"int="<<a<<endl;}voidprint(doublea){cout<<"do... ...
目录
(为您整理了一些要点),点击可以直达。int =2
double =3.14
char =hello!
the name:apple
the weight:100
the name:Alice
the weight:250
可以看出来print
函数有多个重载,现代编译器会根据你传递的参数类型,而选择最匹配的函数。
关于函数重载的一些细节
类型引用和类型本身视为同一个特征标,例如double cube(double x);
和double cube(double &x);
是不能共存的。
匹配函数时,会区分const和非const变量,例如 void display(char a);
和void display(const char a);
是函数重载。
请记住是特征标,而不是函数类型使得可以对函数进行重载。例如 long gronk(int,float);
和double gronk(int,float);
是不能共存的。
函数重载的shortcoming
函数重载在实现同函数名多种功能的同时,也应当付出代价。
标准类型转化、强制匹配能力下降。
double =2
double =3.14
char =hello!
可以看出来这里print(a)
这里a是int类型,编译器会将其类型转化成double,然后调用对应函数。
但是,我们稍微改动一下代码
这段代码中print(12L);
会报错,因为12L
是long类型的常量,如果我们试着强制匹配会发现,12L
既可以转化成int类型,也可以转化成double类型,从而编译器不知道到底调用哪个函数。
不要滥用函数重载
仅当函数基本执行相同的任务,但使用不同类型的数据时,才应当使用函数重载。
C++内联函数、引用变量及函数重载怎么使用的详细内容,希望对您有所帮助,信息来源于网络。