第十章 对象和类

面向对象的特性:封装,继承,多态

  C++ 中class 与 struct 的区别:

class与struct的主要区别在于默认的访问权限与继承方式,class中默认访问权限是private,struct中是public.继承方面class默认私有继承,struct公有继承。 

this指针

在说this指针之前先讲一下类的内存分布。在C++中类的方法和成员是分开存储的。只有非静态成员变量存储在类中。其余的所有成员都不在类中。这是因为成员变量是对象的一部分。成员函数则不是,因此成员变量需要存储到对象中,而成员函数则不需要。具体来说,每个对象都有一份成员变量。所有对象共享一份成员函数。这就是为什么静态成员函数不能访问非静态成员变量的原因。在编译阶段会向每一个成员函数添加一个函数参数this指针。这个指向对象本身。

问题一:this指针占用类内存嘛?

this指针不属于类的成员,只是成员函数的参数,所以不占用大小。

问题二:this是什么,*this呢?

每一个对象的地址,*this该对象本身。

问题三:静态成员函数为什么不能操作this指针。

静态成员函数不属于任何具体的对象,它属于整个类,所以在静态成员函数里面,不会存在this指针,当然也不可能操作this指针。                                                

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值