我正在将 cpp 代码移植到 Objective C 中。
In cpp
我们可以添加一个类friend class
到另一个类并使用其所有公共函数和变量。
我知道Objective C does not support friend class
概念。
在 Objective C 中如何将一个类作为另一个类的友元
如果您有两个紧密耦合的类,那么您可以使用一些简单的技巧来公开更简单的公共接口。例如,
In Banana.h
:
@interface Banana : NSObject
- (BOOL)isPeeled;
@end
In Monkey.h
:
@interface Monkey : NSObject
- (void)eat:(Banana *)aBanana;
@end
In BananaPrivate.h
:
@interface Banana (PrivateMethods)
- (void)peel;
@end
那么你的Monkey.m
文件可以导入BananaPrivate.h
获取私有函数。如果你正在编写一个框架,那么你不包括BananaPrivate.h
在你的框架标题中。
这与 C 中封装的方式相同。在我看来,它比 C 中的封装要少得多。friend
关键字在C++
,但解释原因超出了本答案的范围。
如果您将 Banana 实现为类集群,您也可以通过这种方式公开私有成员变量,但这有点疯狂,我不推荐这样做。如果您需要类之间更紧密的耦合,您可能需要对这部分代码使用 C 习惯用法。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)