C++ C++;:是否所有函数和IVAR都必须在.h文件中声明?
我正在从C迁移到Obj-C,再迁移到Obj-C++。下学期我将把我的课程纳入C++。希望我能轻松地通过它C++ C++;:是否所有函数和IVAR都必须在.h文件中声明?,c++,objective-c,C++,Objective C,我正在从C迁移到Obj-C,再迁移到Obj-C++。下学期我将把我的课程纳入C++。希望我能轻松地通过它 所以在Obj-C中,私有和公共由您在头文件中声明的内容决定。在.h文件的@接口中,您可以对该类调用的所有属性和实例/类方法都已为您列出。从我可以想象的C++中,我觉得公共和私有实际上是所有的,都是在 .h < /C>文件中写出来的:Ivar,函数,你有什么。我的假设正确吗?不,您可以在各种.h文件中使用public和private not。不确定obj-c/c++,但如果您选择将它们放在.h
所以在Obj-C中,私有和公共由您在头文件中声明的内容决定。在
.h
文件的@接口
中,您可以对该类调用的所有属性和实例/类方法都已为您列出。从我可以想象的C++中,我觉得公共和私有实际上是所有的,都是在<代码> .h < /C>文件中写出来的:Ivar,函数,你有什么。我的假设正确吗?不,您可以在各种.h文件中使用public和private not。不确定obj-c/c++,但如果您选择将它们放在.h文件中(在较大的程序中更为可取),则需要#包含.h文件。否,您可以将public和private Not放在各种.h文件中。不确定obj-c/c++,但如果您选择将它们放在.h文件中(在较大的程序中更可取),则需要包含.h文件。对于早期的Objective-c编译器,类的@接口
(通常在头文件中声明,.h
)必须包含所有数据成员(“IVAR”)。使用较新的LLVM编译器,可以在@implementation
(.m
文件)中列出它们
Objective-C类的其他部分没有这样的限制。方法可以在
.h
和.m
中声明或定义,两者都可以,或者两者都不能!标题通常描述最重要的方法,忽略了特定于实现的内容。类别(语言的一个特性)是在其他地方声明和定义新方法时向类添加新方法的一种方式。使用NSObject
和Objective-C运行时几乎可以做任何你能想到的事情,例如在运行时决定一个类是否有一个方法,或者添加一个方法,等等。对于早期的Objective-C编译器,类的@接口
(通常在头文件.h
中声明)必须包含所有数据成员(“IVAR”)。使用较新的LLVM编译器,可以在@implementation
(.m
文件)中列出它们
Objective-C类的其他部分没有这样的限制。方法可以在
.h
和.m
中声明或定义,两者都可以,或者两者都不能!标题通常描述最重要的方法,忽略了特定于实现的内容。类别(语言的一个特性)是在其他地方声明和定义新方法时向类添加新方法的一种方式。也有各种方法使用<代码> NSbObjs/Cuff>和ObjtoVc运行时来做几乎所有你能想到的事情,例如在运行时决定是否有一个方法,或者添加一个方法,等等。< /P>在C++语句中,我们说类声明在<代码> .H./Cux>文件中。C++语言中,我们说类声明在.h
文件中。