函数:
一、形参和实参
形参类似于局部变量,在形参标中定义,并由调用函数时传递函数的实参进行初始化。
二、函数的返回类型
1、函数不能返回另一个函数或者内置数组类型(野指针)。
2、函数必须指定返回类型。
三、函数形参表
1、可以为空,但不能省略,如果没有,最好用void。
2、局部变量不能使用与函数的任意参数相同的名字。
四、参数传递
1、非引用形参
普通的非引用类型的参数通过负责对应的实参实现初始化。
2、指针形参
复制实参指针,只能改变指针指向的对象的值,指针本身的值不能改变。
3、const形参
1、在调用函数数时,如果该函数使用的非引用的非const形参,则即可以给该函数传递const实参也可以
传递非const的实参。
如果将参数定义为非引用的const类型:
void fcn(const int i)
{
//fcn 能读,但是不能改变i的值
}
4、引用形参
引用形参直接关联到其所绑定的圣贤,相当于别名。调用时不用复制参数,直接操作原有对象。
5、非const引用形参只能与完全相同类型的非const对象关联。
如果为非const引用,则不能通过字符串字面值来调用。
如:
find_char(string &s, char c){}
find_char("hello wolrd", 'o') ; //错误,字符串字面值为const变量
五、vector和其它容器类型的形参
1、为避免复制,通常采用引用。
2、一般只传递需要处理的元素的迭代器来传递容器。
六、数组参数
1、通常传递数组参数时,可使用数组的第一个指针和最后一个指针的下一个位置来进行处理。
2、显示定义数组大小,这跟c的处理方法一样,较为通用。
七、this指针
每个成员函数(除static外)都有一个额外的,隐含的形参this。在调用成员函数时,形参this初始化为调用函数的对象的地址。
八、const成员函数
在形参变后加上const后,就变成了常量成员函数,由于this是指向const对象的指针,const成员函数不能修改调用该函数的对象,就不能修改对象的数据成员。
九、构造函数
构造函数是特殊的成员函数,构造函数与类同名,而且没有返回类型。一个类可以有多个构造函数,每个构造函数必须有与其它构造函数不同数目或类型的形参。
十、构造函数的定义
可在类中或者类外定义。
十一、构造函数和初始化列表
在冒号和花括号之间的代码称为构造函数的初始化列表。
Sales_item(): units_sold(0), revenus(0.0){}
合成的默认构造函数不会自动初始化内置类型的成员,所以必须明确定义Sales_item类的默认构造函数。
十二、重载函数
出现在相同作用域中的两个函数,如果具有相同的名字,而形参变不同,成为重载函数。
阅读(703) | 评论(0) | 转发(0) |