章节包括內连函数、类成员函数、重载函数和函数指针的内容
容易弄错的总结如下:
1.函数不能返回另一个函数或者数组类型,可以返回指针函数的指针或者指向数组元素的指针的指针。
2.函数的形参不能是空,可以是void。
3.调用函数对被调函数所使用的实参没有影响。
4.对于形式参数:形参可以是指针,此时复制实参指针,主调函数使用的实参指针的值没有改变;
如果需要保护指针指向的值,则形参定义为指向cosnt对象的指针;
可以将指向const对象的指针初始化为指向费const对象,反之则不可以;
复制实参的方式并不是在所有的情况下都适合,有效的解决方法是将实参定义为引用或者指针类型;
使用引用类型比使用指针类型更安全也更自然;
在形参中额外添加引用类型的参数可以用来返回更多的内容,比如书中的例子,函数的目的是找到vector中和目标元素相同值得首个元素的位置以及计算有多少 个相同值得个数,这里返回值是类型为vector的迭代器的首个元素位置,在形参中添加一个int类型的&变量,就能够完成目标功能了;
函数传递较大的对象(如比较长的String)为了避免实参的复制,引用形参是使用的另一种方式,例子:
bool isShorter(const String &s1,cosnt String & s2){
return s1.size()s2.size();
}//形参是引用,所以不复制实参,又因为形参是cosnt引用,函数不能使用引用改变实参;
函数具有非cosnt引用的形参,不能使用const类型的对象调用//因为这样会改变const类型的对象,违背了cosnt的定义了。
未完待续。