Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/127.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ C++;:是否所有函数和IVAR都必须在.h文件中声明?_C++_Objective C - Fatal编程技术网

C++ C++;:是否所有函数和IVAR都必须在.h文件中声明?

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

我正在从C迁移到Obj-C,再迁移到Obj-C++。下学期我将把我的课程纳入C++。希望我能轻松地通过它


所以在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
文件中。