C++:所有函数和ivar都必须在.h文件中声明
C++: Do all functions and ivars have to be declared in the .h file?
我正在从C到Obj-C迁移到Obj-C++。下学期我将选修C++课程。希望我能轻松通过。
因此,在Obj-C中,private和public由您在头文件中声明的内容决定。在.h
文件的@interface
中,您可以在该类上调用的所有属性和实例/类方法都已为您布局。从我对C++的假设来看,我觉得公共和私有实际上都写在.h
文件中:ivars,函数,你有什么。我的假设是对的吗?
在早期的Objective-C编译器中,类的@interface
(通常在头文件.h
中声明)必须包含所有数据成员("ivar")。使用较新的LLVM编译器,可以在@implementation
(.m
文件)中列出它们。
Objective-C类的其他部分并没有受到这样的限制。方法可以在.h
、.m
中声明或定义,也可以同时声明或定义!标头通常描述最重要的方法,而忽略了特定于实现的内容Categories(该语言的一个特性)是一种向类添加新方法的方法,同时在其他地方声明和定义它们。还有各种方法可以使用NSObject
和Objective-C运行时来做任何你能想到的事情,例如在运行时决定类是否有方法,或者添加方法等。
不,您可以在不同的.h文件中拥有public和private。不确定obj-c/c++,但如果你选择将它们放在.h文件中(在更大的程序中首选),你需要#包括.h文件。
相关文章:
- .cpp和.h文件中的模板专用化声明
- 在 .h 文件中的类中声明静态变量和在.cpp文件中声明"global"变量有什么区别
- 用"=default"声明的函数应该只在头文件中执行
- 调用在 HXX 文件中声明的静态数据成员
- 如何在 c++ 的不同文件中声明类?
- 如何在头文件中声明类模板(由于循环依赖关系)
- 声明要在 qml 和 cpp 文件中使用的全局字符串
- 在.cpp文件之间传递结构声明,而不使用全局头文件
- 为什么要将函数声明和定义放在单独的文件中
- 枚举前向声明与头文件
- 在命名空间中声明变量,在 main 中定义它,使其对所有其他文件可见
- 在带有类型保护的模板文件中使用前向声明
- 在指向现有内存地址的 hpp 文件中声明成员函数的最佳方法
- 在多个头文件中从接口声明被覆盖的函数时,如何避免重复代码?
- 应该在类中的文件声明为静态
- 是否应从头文件声明中排除辅助函数?(C++)
- 哪个C++头文件声明 strlen
- 如何为头文件声明“#include”以避免“error lnk2005”
- 打开文件和关闭文件声明定位:最佳做法,优点,缺点
- 说双向文件声明不隐式设置标志是否正确