我正在从 C 迁移到 Obj-C 到 Obj-C++。下学期我将学习 C++ 课程。希望我能轻而易举地度过难关。
因此,在 Obj-C 中,私有和公有取决于您在头文件中声明的任何内容。在一个文件中,您可以在该类上调用@interface
的.h
所有属性和实例/类方法都为您布局。根据我对 C++ 的假设,我觉得 public 和 private 实际上都写在.h
文件中:ivars、functions,你有什么。我的这个假设是对的吗?
我正在从 C 迁移到 Obj-C 到 Obj-C++。下学期我将学习 C++ 课程。希望我能轻而易举地度过难关。
因此,在 Obj-C 中,私有和公有取决于您在头文件中声明的任何内容。在一个文件中,您可以在该类上调用@interface
的.h
所有属性和实例/类方法都为您布局。根据我对 C++ 的假设,我觉得 public 和 private 实际上都写在.h
文件中:ivars、functions,你有什么。我的这个假设是对的吗?
在早期的 Objective-C 编译器中@interface
,一个类(通常在头文件中声明.h
)必须包含所有数据成员(“ivars”)。使用较新的 LLVM 编译器,可以在@implementation
(.m
文件) 中列出它们。
Objective-C 类的其他部分不受此限制。方法可以在.h
, .m
, both 中声明或定义,或者都不!标头通常描述最重要的方法,省略特定于实现的内容。 类别(语言的一个特性)是一种向类添加新方法同时在其他地方声明和定义它们的方法。还有多种使用方式,NSObject
Objective-C 运行时几乎可以做任何你能想到的事情,例如在运行时决定一个类是否有方法,或者添加一个方法等。
不,您可以不在各种 .h 文件中拥有公共和私人。不确定 obj-c/c++,但如果您确实选择将它们放入 .h 文件中(在较大的程序中首选),则需要 #include .h 文件。