Cpp学习笔记五
- 反向迭代
- 重载函数
- 函数指针
- 面向对象的标准库
反向迭代:rbegin, rend
反转一个字符串的几种方法:
- 原地反转,reverse(s.begin(), s.end())
- 赋值,s2.assign(s.rbegin(), s.rend())
重载函数
同一个作用域的两个函数,名字相同、形参表不同,称之为重载函数
重载函数和重复声明的区别:主要是形参表不同
形参和const形参在使用非引用形参时并无不同,在使用引用形参或者指针时,有所区别
不要过度使用重载功能
在C++中,名字查找发生在类型检查之前
重载确定的几个步骤:
- 选出候选函数——同名函数
- 选择可行函数——实参个数、类型匹配
- 寻找最佳匹配
函数指针
函数指针同C语言
C++允许使用函数指针指向重载的函数
此时指针的类型必须与重载函数的一个版本精确匹配
面向对象的标准库
IO标准库使用的工具有:
- istream、ostream
- cin、cout、cerr、clog
-
、<<
- getline
C++种提及的父类称之为基类,继承的类称之为派生类
一个派生类可以有两个或者多个父类
例如iostream这个类派生自istream和ostream
若函数有基类类型的引用形参时,可以给函数传递其派生类型的对象
就是派生类可以放进&父类
的形参
标准库类型不允许做复制或者赋值操作
即
- IO对象不能放在vector或者其他容器里面
- 要传递IO对象,只能使用非const引用的方式进行传递