C++类的成员变量和成员函数

类是一种数据类型,该类型类似于普通的数据类型,但是又有别于普通的数据类型。类这种数据类型是一个包含成员变量和成员函数的一个集合。下面是 student 类的定义。

class student
{
    char name[20];  //姓名
    int id_num;     //学号
    int age;        //年龄
    char sex;       //性别
    void set_age(int a);
    int get_age();
};

有两种方法可以给出成员函数的定义:
在类内部进行函数的声明和定义,此种方式我们成为 inline,也即内联定义。inline 是C++关键字,专门用于表示内联;
在类内进行函数声明,在类外部进行函数定义。

//在类内部进行函数的声明和定义:
class student
{
    char name[20];  //姓名
    int id_num;     //学号
    int age;        //年龄
    char sex;       //性别
    void set_age(int a){age = a;}
    int get_age(){return age;}
};

内联函数可以通知编译器在编译阶段用成员函数 set_age() 和 get_age() 的函数体替换掉所有调用该函数的代码,这样替换后的代码将不会再出现对这个函数的调用的代码。通过直接的替换可以在一定程度上提高程序运行效率,通常只是用于一些简短函数。

//在类内部声明函数,在类外部定义函数:
class student
{
    char name[20];  //姓名
    int id_num;     //学号
    int age;        //年龄
    char sex;       //性别
    void set_age(int a);
    int get_age()const;
};
//在类外部定义set_age函数
void student::set_age(int a)
{
    age = a;
}
//在类外部定义get_age函数
int student::get_age()const
{
    return age;
}

本例中 set_age() 和 get_age() 函数在类声明内部仅有声明部分,而无定义部分,其函数体在类声明之外定义。本例中定义函数采用了域解析符::

在类内声明函数,如果在函数声明时使用 inline 关键字,如例 4 所示,则可以将类内声明类外定义的函数强制转换为内联函数。

class student
{
    char name[20];  //姓名
    int id_num;     //学号
    int age;        //年龄
    char sex;       //性别
    inline void set_age(int a);
    inline int get_age();
};
//在类外部定义set_age函数
void student::set_age(int a)
{
    age = a;
}
//在类外部定义get_age函数
int student::get_age()
{
    return age;
}

student 类中声明函数 set_age() 和 get_age() 时都使用了 inline 关键字,这就使得这两个函数也成为了内联函数,尽管它们是在类外进行定义函数体的。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值