设为首页 加入收藏

TOP

13.1.3 类的方法
2013-10-07 01:14:13 来源: 作者: 【 】 浏览:73
Tags:13.1.3 方法

13.1.3  类的方法

类的方法,又称类的成员函数。在13.1.1节的示例中,类point和student内定义的函数就是成员函数,用来做计算或访问类的属性。在类体中的声明方法和普通函数的声明方式相同,其格式如下:

  1. <函数返回类型><成员函数的名称>([<参数列表>])  
  2. {  
  3.     <函数体>  

在成员函数的参数列表中可以定义默认参数,也可以省略。成员函数的函数体可以在类体内被定义,也可以在类体外被定义。一般情况下,为保持类体的清晰明了和效率,只有简短的方法才在类体内定义,这些方法称为内联(inline)函数。

如果在类体外定义成员函数,必须用域运算符"::"指出该方法所属的类。其格式如下:

  1. <函数返回类型><类名>::<成员函数的名称>([<参数列表>])  
  2. {  
  3.     <函数体>  

在函数体内可以直接引用类定义的属性,无论该属性是公有成员还是私有成员。

【示例13-5】 给示例13-4中的类增加成员函数hi(),然后在类体外定义。

  1. class person  
  2. {  
  3.     int id;             //编号  
  4.     int age;            //年龄  
  5.     char * name;        //姓名  
  6.     void hi();          //公有函数  
  7. }  
  8. void person::hi()       //类体外声明  
  9. {  
  10.     cout<<"hi,it it a example."<<endl;  

分析:成员函数hi()在类体内声明,但却在类体外定义。因此定义具体的代码时,必须用person::hi的形式。

类的每项操作都是通过方法实现的,使用某个操作就意味着要调用一个函数。这对于小的和常用的操作来说,开销是非常大的。内联函数就是用来解决这个问题的,它将该函数的代码插入在函数的每个调用处,作为函数的内部扩展,用来避免函数频繁调用机制带来的开销。虽然这种做法可以提高执行效率,但如果函数体过长会有不良后果。因此,一般对于非常简单的方法,才声明为内联函数。例如,示例13-3中的成员函数getchinese()就是一个内联函数。因此,示例13-5中的成员函数hi()要想成为内联函数,必须修改为如下形式:

  1. inline float student::getchinese()  //内联函数  
  2. {  
  3.     return chinese;  

分析:用inline声明后,函数getchinese()的代码将被插入在函数的每个调用处。

【责任编辑:云霞 TEL:(010)68476606】

回书目   上一节   下一节

】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇13.1.5 析构函数 下一篇13.1.2 类的属性

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: