C++基础编程----6.2函数
2015-10-29 16:55
519 查看
函数
1.引用返回的是左值,可以赋值2.返回数组指针
int (*func(int i))[10];
int even[]={0,2,4,6,8};
int odd[]={1,3,5,7,9};
decltype(odd) *arrptr(int i) // decltype并不负责把数组类型转换成对应的指针类型,所以它的结果仍然是个数组 返回 数组指针
{
return i%2?odd:even;
}
3.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);
}
4.函数指针
// 比较两个string对象的长度
bool lengthCompare(const string &,const string &); // 函数声明
// pf指向一个函数,该函数参数是两个const string&,返回值为bool类型
bool (*pf)(const string &,const string &); // 函数指针 (*pf)必须加括号,否则就变成了返回bool*类型
pf = lengthCompare; 或者 pf =&lengthCompare; // 等价赋值 &可选
typedef bool Func(const string &,const string &);
void useBigger(cosnt string &,const string &,Func); // Func函数类型,形参中会自动转换为函数指针类型
类似于:void useBigger(cosnt string &,const string &,bool Func(const string &,const string &));
类似于:typedef decltype(lengthCompare) *FuncP2;
void useBigger(cosnt string &,const string &,FuncP2);
5.尾置返回类型
C++11中一种简化声明的方法,就是使用尾置返回类型。任何函数定义都能使用尾置返回类型。尾置返回类型都跟在形参列表的后面并以一个->符号开头,在本该返回类型的地方放置一个auto
// func接受一个int类型的实参,返回一个指针,该指针指向一个含有十个元素的数组
auto func(int i)->int (*)[10];
相关文章推荐
- Mootools 1.2教程 函数
- autoit InputBox 函数
- 文件遍历排序函数
- Oracle 函数大全[字符串函数,数学函数,日期函数]第1/4页
- ASP下经常用的字符串等函数参考资料
- PostgreSQL教程(五):函数和操作符详解(1)
- DOS批处理 函数定义与用法
- asp Chr 函数 数字转字母的方法
- Lua中的函数精讲笔记
- Lua中的闭合函数、非全局函数与函数的尾调用详解
- Lua中调用C++函数示例
- Lua实现split函数
- Lua常用时间函数使用实例
- Lua函数与字符串处理简明总结
- Lua学习笔记之表和函数
- Lua中实现sleep函数功能的4种方法
- Lua函数用法研究
- Lua基础教程之赋值语句、表达式、流程控制、函数学习笔记
- PowerShell函数简明教程
- 探索PowerShell(十一)函数介绍