首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >@private是如何实现的?

@private是如何实现的?
EN

Stack Overflow用户
提问于 2010-12-04 16:16:33
回答 1查看 127关注 0票数 4

在Objective-C中,我很好奇实例变量的访问控制是如何实现的,比如@private@protected等。

我曾考虑过以某种方式生成独立的结构,例如:

代码语言:javascript
运行
复制
@interface Foo {
  int bar;
  @private
  int baz;
  @public
  int qux;
}

=>之类的东西

代码语言:javascript
运行
复制
struct Class_Foo_Protected {
  int bar;
};

struct Class_Foo_Private {
  int baz;
};

struct Class_Foo_Public {
  int qux;
};

但我真的不知道。有人知道这到底是怎么做到的吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2010-12-04 16:24:12

这些修饰符不会改变类的内存布局。编译器本身会记住哪个ivar是公有的、受保护的还是私有的,如果你试图从不合适的地方访问它们,编译器就会发出错误。这一切都是在生成任何代码之前完成的,并且不会影响生成的代码。

票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4352619

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档