• 博客园logo
  • 会员
  • 周边
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • YouClaw
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
nathaniel pong
一个小子在默默的学习
博客园    首页    新随笔    联系   管理    订阅  订阅

函数

函数原型的三要素:返回类型,函数名,形参列表。

 

函数应该在头文件中声明,方便函数在不同的文件中使用而且方便函数的修改,定义应该在一个源文件中。

 

默认实参:当函数调用的时候赋予实参的时候将覆盖默认的实参,使用用户所赋值的实参。

           默认实参只能用于尾部缺少的实参。见c++primer  P218

           默认实参是局部变量,只有在该函数定义的源文件中才有效果的。

 

Static局部对象:该类型的对象一旦创建后之后再程序结束后才会被释放,而且每次使用该对象后将保留原来的值(即下一次使用的时候,该对象被初始化为上一次使用后保留的值)。

 

内联函数:有点在于避免了函数调用的开销,在定义函数的基础上,加上关键字inline

           如:inline int a(int n);

           但是调用的时候按照普通函数的调用即可,其实质只是编译过程中在调用点展开该函数的代码提供编译。

           适用于只有几行代码的函数。

 

 

类的成员函数:

      类的所有成员都必须在类定义中声明。类的成员函数可以访问类的private成员。调用成员函数的时候是使用对象来调用的。用.操作符或者用箭头->操作符。

      This指针:在调用成员函数的时候,this指针初始化为调用该函数的对象的地址。

      Const成员函数:因为类的成员函数可以修改它们对象的数据成员,但是一旦成员函数定义为const的成员函数的时候就不能修改他们的数据成员。

在类的外面定义成员函数时需要指明该函数的属于哪一个类的。

 

类的构造函数:作用:初始化类的对象。

              构造函数与类同名,没有返回值。可以有多个构造函数,但是每个构造函数必须含有不同数目或者类型的形参。

              构造函数放在类的public,初始化列表在形参表之后,以冒号开始,每个成员后面是在圆括号里面的初始值,用逗号分隔开。

              如:Sale_item():unite_sold(0),revenue(0.0) {}  

 

重载函数:具有相同的名字而形参表不同。根据实参的类型来决定调用哪一个函数。

注意:不能仅仅基于返回值类型实现重载。

重载与作用域:在函数中局部声明的名字将屏蔽在全局作用内声明的同名的

名字。每一个版本的重载函数都应该在同一个地方声明。

定义重载函数的时候不要过分多,而且设计形参的时候应该避免二义性。

 

 

参数的匹配与枚举:不能将整形值传递给枚举类型的形参,但是可以讲枚举值传递给整型的形参。仅当形参是引用和指针的时候,形参是否为const才会有影响。

指向函数的指针必须是类型完全一样的,避免定义的时候名字太长,可以使用typedef简化。

指向重载函数的指针必须与重载函数的一个版本精确匹配!见c++primer P239

posted on 2012-07-14 17:13  nathaniel pong  阅读(80)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2026
浙公网安备 33010602011771号 浙ICP备2021040463号-3