Chinaunix首页 | 论坛 | 博客
  • 博客访问: 496957
  • 博文数量: 111
  • 博客积分: 3160
  • 博客等级: 中校
  • 技术积分: 1982
  • 用 户 组: 普通用户
  • 注册时间: 2010-04-24 11:49
个人简介

低调、勤奋。

文章分类

全部博文(111)

文章存档

2014年(2)

2013年(26)

2012年(38)

2011年(18)

2010年(27)

分类: C/C++

2012-12-19 07:18:51

函数:
一、形参和实参
形参类似于局部变量,在形参标中定义,并由调用函数时传递函数的实参进行初始化。

二、函数的返回类型

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类的默认构造函数。

十二、重载函数

出现在相同作用域中的两个函数,如果具有相同的名字,而形参变不同,成为重载函数。


阅读(673) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~