C++中的域

 这一段时间一直在琢磨对象模型,现在看到个问题都想用模型来解释,不过确实如此,几乎什么都可以用对象模型来解释
搞这个模型就绝对离不开域
到底域是什么?这个恐怕不是三言两语说的明白的,每个人都有一定的概念,但是可能大不相同
C++上指的是作用域
{}一对大括号就对应了一个作用域,学过C++的都知道,作用域里的局部变量出了作用域就消亡了(根本原因是栈恢复)
而对于静态变量,编译器编译的时候做了处理,解析为“全局变量”,但这个全局变量和一般意义上的全局变量不同,它带有记号,这个记号就是 域,标志着这个所谓的全局变量是专属于这个域的
重点是类域,其实类域和一般域没什么区别也是一对{}形成的而已
要讨论的自然是函数和数据
其实同样是编译器在编译的时候进行了处理,把成员函数(不管是静态还是非静态,虚的还是非虚的)全都解析成了全局函数,但是又带上了记号,那就是专属于某个类的记号,当然解析后的函数全部是独一无二的
只是寻址这些函数的时候有所区别,这些区别也就是C++本身的特性所导致的,具体什么特性不再此讨论
然后就是数据成员,静态数据成员,独立于域依附于域。同样编译的时候解析成了专属此类的全局变量,非静态变量是和类的对象同生命的,依附于对象而存在。
静态成员函数和静态成员数据是独立于域的,所以不需要用对象来存取,依附于域,说明可以用对象来存取,也可以用类名来存取。
说了这么多,到底域是个什么好像还是很没头绪

看看下面这张图吧~

上面这张图上面的虚线就是所谓的类域,非静态数据成员是依附于对象生存在栈空间,静态函数和数据以及非静态函数被解析后分别存在于数据段和代码段

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值