第7章 函数(7)

7.7 类的成员函数

函数原型必须在类中定义。但是,函数体则既可以在类中也可以在类外定义。

7.7.1 定义成员函数的函数体

类的所有成员都必须在类定义的花括号里面声明,此后,就不能再为类增加任何成员。类的成员函数必须加声明的一般定义。类的成员函数既可以在类的定义内也可以在类的定义外定义。

编译器隐式地将在类内定义的成员函数当作内联函数。

类的成员函数可以访问该类的private成员。

1. 成员函数含有额外的、隐含的形参。

2. this指针的引入

每个成员函数都有一个额外的、隐含的形参this。在调用成员函数时,形参this初始化为调用函数的对象的地址。

3. const成员函数的引入

跟在成员函数声明的形参表后面的const的作用:const改变了隐含的this形参的类型。

用这种方式使用const的函数称为常量成员函数(const member function)。由于this是指向const对象的指针,const成员函数不能修改调用该函数的对象。

const对象、指向const对象的指针或引用只能用于调用其const成员函数,如果尝试用它们来调用非const成员函数,则是错误的。

4. this指针的使用

在成员函数中,不必显式地使用this指针来访问被调用函数所属对象的成员。对这个类的成员的任何没有前缀的引用,都被假定为通过指针this实现的引用。

由于this指针是显式定义的,因此不需要在函数的形参表中包含this指针,实际上,这样做是非法的。但是,在函数体中可以显式地使用this指针。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值