C++primer阅读笔记-重载运算与类型转换(可调用对象与function)
2015-09-05 12:45
465 查看
C++中的可调用对象:
函数
函数指针
lambda表达式
bind创建的对象
重载了函数调用运算符的类
每个可调用对象都有自己的类型:
lambda有唯一的类类型(未命名的)
函数和函数指针的类型以及传递给调用的实参类型
每个可调用对象都有自己的调用形式
调用形式指明调用返回类型以及传递给调用的实参类型
两个不同的类型的可调用对象的调用形式可能相同
一种调用形式对应一个函数类型
fuction定义在functional头文件中
function为一个模板,创建一个具体对象时,需要提供额外信息,该信息表示function类型能够表示的对象的可调用形式
重载函数间的差别在返回类型或者形式参数上
解决方法:
存储函数指针而非函数名字消除二义性
使用lambda消除二义性
函数
函数指针
lambda表达式
bind创建的对象
重载了函数调用运算符的类
每个可调用对象都有自己的类型:
lambda有唯一的类类型(未命名的)
函数和函数指针的类型以及传递给调用的实参类型
每个可调用对象都有自己的调用形式
调用形式指明调用返回类型以及传递给调用的实参类型
两个不同的类型的可调用对象的调用形式可能相同
一种调用形式对应一个函数类型
标准库function类型
为了把同一调用形式的可调用对象看成具有相同的类型fuction定义在functional头文件中
function为一个模板,创建一个具体对象时,需要提供额外信息,该信息表示function类型能够表示的对象的可调用形式
重载函数与function
不能直接将重载函数的名字存入function类型的对象中重载函数间的差别在返回类型或者形式参数上
解决方法:
存储函数指针而非函数名字消除二义性
使用lambda消除二义性
相关文章推荐
- C++Primer笔记之关联容器的使用详解
- Eval and new funciton not the same thing
- 如何更好的利用《C++ Primer》学习C++?
- C++primer 第十章 单词转换程序 运行不了解决办法
- 头文件中包含const与非const对象
- 几个标准库类型的简单使用
- C++Primer _vector _习题3.13
- C++Primer _vector _习题3.14
- Sales_item.h (C++ Primer 第五版)
- forward_list未定义+=符号,而改用advance()函数改变迭代器
- C++ primer 笔记
- C++Primer学习笔记
- 重读c++primer (第五版) -- 引子
- (福利)”C++Primer笔记“和”Java经典入门笔记“
- C++复习学习提纲
- [C++ Primer]第一章 快速入门
- C++primer 阅读笔记-模板与泛型编程(成员模板)
- C++primer 阅读笔记-模板与泛型编程(模板参数)
- C++primer 阅读笔记-模板与泛型编程(类模板)
- C++ Primer 第(1-3)章一句话知识点总结