成员函数的定义

成员函数的定义

如上所述, 类中含有两种成份,即数据成员和成员函数, 其中成员函数也称方法。实际上,成员函数和方法指的是同一种实体, 是一种实体的两种不同叫法, 成员函数是程序设计语言 C + + 中的术语,而方法是面向对象方法中的术语。在以后的叙述中, 本书采用术语成员函数。
成员函数的定义通常采用两种方式。
第一种方式是在类声明中只给出成员函数的原型, 而成员函数体在类的外部定义。这种成员函数定义的一般形式是:

返回类型 类名∷函数名(参数表) { 
// 函数体
}

例如,表示坐标点的类 point 可声明如下:

class point
{ 
private :
    int x, y;
public:
    void setpoint (int, int) ;
    // 设置坐标点的成员函数 setpoint( )的函数原型 int getx( ) ;
    // 取 x 坐标点的成员函数 getx( )的函数原型
    int gety ( ) ;
    // 取 y 坐标点的成员函数 gety( )的函数原型
} ;
void point∷setpoint( int a, int b)// 定义成员函数 setpoint( )
{ 
    x = a;
    y = b;
}
int point∷getx( ) // 定义成员函数 getx( )
{ 
    return x;
}
int point∷gety( ) // 定义成员函数 gety( )
{ 
    return y;
}

从这个例子可以看出,虽然函数 setpoint( )、getx( )和 gety( ) 在类外部定义, 但它们属于类 point 的成员函数, 它们可以直接使用类 point 中的数据成员 x 和 y。

说明:

  1. 在所定义的成员函数名之前应缀上类名, 在类名和函数名之间应加上分隔符 “∷”,例如上面例子中的“point∷”。
  2. 在定义成员函数时, 对函数所带的参数, 不但要说明它的类型, 还要指出其参 数名。
    3.在定义成员函数时, 其返回类型一定要与函数原型中声明的返回类型匹配。 成员函数的第二种定义方式是:将成员函数定义在类的内部, 即定义为内置函数。在 C + + 中, 可以用下面两种格式定义类的内置函数:

(1 ) 隐式定义
所谓内置函数的隐式定义, 就是直接将函数定义在类内部,例如:

class point
{ 
private :
    int x, y;
public:
    void setpoint(int a, int b)
    { 
        x = a;
        y = b;
    }
    int getx()
    { 
        return x;
    }
    int gety ()
    { 
        retrun y;
    }
} ;

此时, 函数 setpoint( )、getx( )和 gety( )就是隐含的内置函数。内置函数的调用类似宏指令的扩展,它直接在调用处扩展其代码, 而不进行一般函数的调用操作。
(2 ) 显式定义
在定义内置函数时, 为了书写清晰,仍将它放在类定义体外。但为了使它仍然起内置函数的作用, 在函数定义前冠以关键字“inline”, 以此显式地说明这是一个内置函数。例如上面的例子改为显示定义可变成如下形式:

class point
{ 
private :
    int x, y;
public:
    void setpoint(int, int) ;
    int getx() ;
    int gety() ;
};
inline void point∷setpoint(int a, int b)
{ 
    x = a;
    y = b;
}
inline int point∷getx()
{ 
    return x;
}
inline int point∷gety()
{ 
    return y;
}

说明:简单的成员函数定义成内置函数可以提高执行的效率, 但如果函数体较长, 将使程序量增加很多。因此,一般对非常简单的函数才声明为内置函数。

    原文作者:博_采_众_长
    原文地址: https://blog.csdn.net/weixin_44556968/article/details/105954452
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞