设为首页 加入收藏

TOP

4.1.2 成员函数的定义
2013-10-07 01:17:33 来源: 作者: 【 】 浏览:63
Tags:4.1.2 成员 函数 定义

4.1.2  成员函数的定义

类中含有两种成分,即数据成员和函数成员。函数成员又称为成员函数。成员函数的定义有两种方式。

1.方式一

类声明时给出函数原型,函数体在外部定义。函数定义形式为:

  1. 返回类型 类名::函数名(参数列表)  
  2. {  

上面的函数定义形式与普通的函数定义基本类似,只不过由于该函数是类的成员函数,因此在函数名前面需要添加类的说明,即添加"类名::"来说明这是类的成员函数。下面看一个类的成员函数定义的例子。

【示例4.3】 成员函数的定义,在类声明时给出函数原型,而在类的外部定义函数体。

  1. class point                 //声明类point  
  2. {  
  3. private:  
  4.     int x;int y;  
  5. public:  
  6.     float distance();       //类的成员函数的函数原型  
  7. };  
  8. int point::distance()       //类的成员函数定义  
  9. {  
  10.     return sqrt(x*x+y*y);  

分析:上面的代码首先在point中给出distance()函数的原型,在类的外部定义该函数。这种定义方式使得程序可读性增强,但如果函数体很短则应使用下面的定义方式。

2.方式二

第二种方法是将成员函数定义在类的内部。这样定义的函数为内置函数。如果直接在类内部编写函数体,则称为隐式定义,如果函数仍然写在类外部,则需要在函数定义前添加inline,称为显式定义。下面列出隐式定义和显式定义的例子。

【示例4.4】 成员函数的隐式定义。即将函数直接定义在类的内部。

  1. class point                 //声明类point  
  2. {  
  3. private:  
  4.     int x;int y;  
  5. public:  
  6.     float distance()        //定义函数  
  7.     {  
  8.         return sqrt(x*x+y*y);  
  9.     }  
  10. }; 

分析:上面类的成员函数定义是直接在类的内部进行的。这样定义函数称为内置函数。而且是直接在类的内部实现,又称为隐式定义的内置函数。

【示例4.5】 成员函数的显式定义,即将函数的定义在外部实现,但是添加了关键字inline修饰。此时的函数仍然为内置函数。

  1. class point             //声明类point  
  2. {  
  3. private:  
  4.     int x;int y;  
  5. public:  
  6.     float distance();  
  7. };  
  8. //类的内置成员函数  
  9. inline int point::distance()      
  10. {  
  11.     return sqrt(x*x+y*y);  

分析:上面类的成员函数虽然是在类的外部实现的,但是添加了关键字inline,则说明此函数仍然为一个内置函数。

说明:所谓的内置函数与#define相似。在实际应用中,它把函数过程嵌入调用程序,避免频繁入栈出栈,只能用于简单的函数。

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

回书目   上一节   下一节

】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇4.1.4 对象的作用域 下一篇4.1.1 从结构到类

评论

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