C++学习(三) C++类中成员函数的定义

类的数据成员说明对象的特征,而成员函数决定对象的操作行为。

类的成员函数有两种定义方法:外联定义和内联定义。

(1)外联成员函数(外联函数)

外联定义成员函数是指在类定义体中声明成员函数,而在类定义体外定义成员函数。在类中声明成员函数时,它所带的函数参数可以只指出其类型,而省略参数名;在类外定义成员函数时必须在函数名之前缀上类名,在函数名和类名之间加上作用域区分符::,作用域区分符::指明一个成员函数或数据成员所在的类。作用域区分符::前若不加类名,则成为全局数据或全局函数(非成员函数)

在类外定义成员函数的具体形式如下:

返回值类型 类名::成员函数名(形式参数表)
{
     //函数体
}

如日期类的可以设置三个如下的成员函数:

void Tdate::set(int m,int d,int y)
{
    month = m;
    day = d;
    year = y;
} 

int Tdate::isLeapYear()
{
    return ((year % 4 == 0 && year % 100 != 0) || (year % 400 == 0));
}

void Tdate::print()
{
    cout<<month<<"/"<<day<<"/"<<year<<endl;
}

(2)内联成员函数(内联函数、内部函数、内置函数)

程序在编译时将内联成员函数的代码插入在函数的每个调用处,作为函数体的内部扩展,用来避免函数调用机制所带来的开销,提高程序的执行效率。可以将那些仅由少数几条简单语句组成,却在程序中被频繁调用的函数定义为内联成员函数。内联成员函数有两种定义方法,一种方法是在类定义体内定义(隐式声明),另一种方法是使用inline关键字(显式声明)。

a.在类定义体内定义内联成员函数:

class Tdate{
public:
    void Tdate::set(int m,int d,int y)
    {
        month = m;
        day = d;
        year = y;
    } 
    int Tdate::isLeapYear()
    {
        return ((year % 4 == 0 && year % 100 != 0) || (year % 400 == 0));
    }
    void Tdate::print()
    {
        cout<<month<<"/"<<day<<"/"<<year<<endl;
    }
private:
    int month;
    int day;
    int year;
};

b.使用关键字inline定义内联成员函数:

inline void Tdate::set(int m,int d,int y)
{
    month = m;
    day = d;
    year = y;
} 

void inline Tdate::set(int m,int d,int y)
{
    month = m;
    day = d;
    year = y;
} 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值