【C++封装】C++面向对象模型

文章介绍了C++中的封装概念,包括成员变量和函数的存储方式,特别是this指针如何标识对象调用的成员函数。此外,讨论了const修饰成员函数的限制以及友元作为访问私有数据的特权机制。const成员函数不能修改对象的非mutable成员,而友元则可以在类外部访问私有成员。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

文章内容如下:

1)成员变量和函数的存储

2)this指针

3)const修饰成员函数

4)有元

一。成员变量和函数的存储

        C++实现了封装,数据(-变量)和处理数据的操作(-函数)是分开存储的,C++中的非静态数据成员直接内含在类对象中,成员函数虽然内含在class声明之内,去不出现在对象中,每一个非内联成员函数只会诞生一份函数实例

         从上述图中我们会有一个疑问,共享的成员函数是如何区分哪个对象在调用自己的呢?(this指针)

二。this指针

        this指针指向的是被调用的成员函数所属的对象的。this指针是一种隐含指针,他隐含于每个类的非静态成员函数中,this指针无需定义,直接使用即可。    

        这里最对静态成员函数与非静态成员函数做一下总结:静态成员函数类里声明类外定义,因为属于这个类不属于对象,所以没有实例化对象也能使用,并且只能操作静态成员数据,非静态成员函数如果在类外,也是类里声明,类外定义,通过this指针判断是哪个对象在调用它。

2. this指针的应用

        函数形参和成员同名可以使用this指针解决;

        this指针来完成链式操作

三。const修饰成员函数

        const修饰成员函数,其实是指const修饰this指针指向的内存区域,所以该成员函数体内不可以修改本类中的任何普通成员变量,当成员变量类型前用mutable修饰时除外。      

四。有元

        有元可以理解为特权的意思,用friend修饰的变量或函数就叫有元变量或友元函数,他可以用来访问另一个类中的私有数据。类的主要特点之一就是数据隐蔽,即类的私有成员无法在类外访问,但是有时候需要在类外访问类的私有成员,这时候就需要有元来操作,有时候我么会将全局函数做有元,有时候会将某个类中的成员函数做有元,有的会将整个类声明为有元。

        需要注意的是,friend只出现在声明处。有元主要用在运算符重载上。

         需要注意的是有元不能被继承,有元不具有传递性。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值