网站seo如何优化,商城网站设计费用,公众平台网页版,外边做一个网站要多少钱C Primer 6.4 函数重载 定义重载函数重载和const形参const_cast和重载重载与作用域练习题 定义重载函数
void lookup(int a);
void lookup(double b);
void lookup(int a,double b);
此三个函数构成函数重载#xff0c;具体调用时根据传入实参进行匹配void lookup(int a);
bo… C Primer 6.4 函数重载 定义重载函数重载和const形参const_cast和重载重载与作用域练习题 定义重载函数
void lookup(int a);
void lookup(double b);
void lookup(int a,double b);
此三个函数构成函数重载具体调用时根据传入实参进行匹配void lookup(int a);
bool lookup(int a);
只有返回值不同编译器会认为是重复声明报错
不构成重载重载和const形参
void lookup(int a);
void lookup(const int a);
若传入的形参是const int b0;
则传哪个都是允许的属于重复声明
void lookup(int a);
void lookup( int * const a);//先是常量后是指针
同理void lookup(int a);
void lookup(const inta);
若将const int b传入则第一个不允许它有可能通过a这个引用改变b的值
void lookup(int *a);
void lookup(const int*a );//注意这里const的位置和上一个不同先是指针后是常量不允许用指针修改所指向的常量
同上构成重载当我们传递非常量实参时编译器优先考虑非const的函数
const_cast和重载
之前曾定义过如下函数
const string shorterString(const string s1,const string s2)
{return s1.size()s2.size() ? s1:s2;
}
现在想对两个非常量实参调用这个函数返回结果为string可以用const_cast 强转
string shorterString(string s1,string s2)
{auto rshorterString(const_castconst_string(s1),const_castconst_string(s2));//把s1s2强转为const stringreturn const_caststring (r);//去const
}重载与作用域
void func(int a);
void func(string a);
int main()
{void func(double a);func(aaa);//出错只认为有void func(double a);void func(string a);被隐藏
}在c语言中名字查找发生在类型检查之前
练习题
无需要强调的