inline
Class objc_object::ISA() {
...
return
(Class)(isa.bits & ISA_MASK)
}
1.类的底层实现是结构体。
2.继承是通过把父类的结构体声明为本类结构体的第一个成员变量实现的。
联合体: 所有成员可以是不同的类型,但是公用一块内存区域,设置了一个成员变量就会覆盖另一个成员变量的数据。优点是节省空间。
union
isa_t {
//联合体
isa_t() { }
isa_t(uintptr_t
value) : bits(value) { }
//提供了cls 和 bits ,两者是互斥关系
Class cls;
uintptr_t
bits;
#if defined(ISA_BITFIELD)
struct
{
ISA_BITFIELD;
// defined in isa.h
};
#endif
};
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。