7.1  函数定义

笔记:(1)即使形参的类型相同,也必须重复定义。

         (2)局部于函数的变量不能与该函数任意形参的名字相同。

         (3)接口错误:在传递函数实参时,传递过多,忽略某个实参或传递错误类型的实参。

         (4)定义函数必须指定返回类型。

7.2  形参

问题1:不是说函数内部的改变不会改变实参的值吗?为什么指针形参会变?

问题2:对于省略符形参不太明白。

笔记:(1)指针初始化规则:可以将指向const型对象的指针指向非const型对象,但不能将指向非const对象的指针指向const对象。

         (2)想要改变实参的值,必须采用引用或者指针的方式绑定。

         (3)避免复制,使用引用形参能够提高效率。

         (4)当使用引用形参的唯一目的是避免复制实参时,应该使用const。

         (5)函数可以通过改变形参的值来改变数组元素的值。

          (6)求数组长度的方法:sizeof(ia)/sizeof(*ia);

7.3  return语句

笔记1:千万不能返回局部变量的引用。如:int &min(int a,int b){int mini;...;return mini}是错误的。

笔记2:使用递归时,递归终止条件要注意。

7.4 函数声明

笔记1:设计带有默认实参的函数时,将较少使用默认实参的形参放在前面,较常使用默认实参的形参放在后面。

笔记2:当某个形参具有默认实参时,后面的所有形参都必须具有默认实参,而之前的不用。

7.6 内联函数

笔记1:内联机制适用于优化代码量少的,常被调用的函数。

笔记2:内联函数应在头文件定义。

7.7  类的成员函数

问题:(1)成员函数的函数体可以在类内定义也可以在类外定义怎么理解?

         (2)在类的成员函数的定义当中,什么时候使用const,什么时候不用?

笔记:(1)通过对象来调用成员函数。

        (2)构造函数名与类名相同。

7.8  重载函数

问题:(1)习题7.34 为什么要使用引用&s来作为形参?

笔记:(1)形参与const形参的等价性只存在于非引用形参,当是引用形参时,两者是不同的。

         (2)不能仅仅基于不同的返回类型来实现函数的重载。

         (3)整型值不能传递给枚举形参,但枚举形参能够传给整形形参。

         (4)注意const是指向指针本身还是指向所修饰的对象。

7.9  函数指针

笔记:(1)指向函数的指针必须在两边加上括号。

         (2)引用函数名但又不调用该函数时,将被自动解释为函数指针。

         (3)指向不同函数类型的指针不能相互转换。

         (4)函数指针必须初始化或者具有零值,否则不能调用函数

         (5)指向重载函数的指针类型必须与重载函数精确匹配(返回值还有指向的函数的形参)。

小结:

     对于引用和指针的传递还有一些不太明白的地方。需要在应用中逐步完善。不明白的问题应当尽快搞清楚。 

 

posted on 2012-07-13 12:05  fengluo  阅读(143)  评论(0编辑  收藏  举报