真的很晚了。如果您能告诉我 C++ 的 Objective-C 等价物是什么,我将不胜感激:
&var1
在 ObjC 中。当我在 C++ 代码中使用它时,我使用的是 var1;
我觉得应该是
**var1
还是我错了?
编辑:
C++ 代码:
void getHierarchy(Vector<T*> &hierarchy) {
for(int i = 0; i < childs.size(); i++) {
childs[i]->getHierarchy(hierarchy);
}
}
ObjC 代码:
-(void) getHierarchy: (NSMutableArray **) hierarchy {
[*hierarchy addObject:self];
for (T *child in [self childs]) {
[child getHierarchy:*hierarchy];
}
}
最佳答案
没有直接的等价物。 C++ 中的 &
表示 reference type并且具有关于为同一变量创建本质上不同的名称的特定含义,并且允许您将整数之类的东西传递给函数并允许被调用者直接修改调用者的版本。
ObjC 不允许这种确切的语义。通常,您希望回退到传统的 C 引用传递方式,即使用指针。您在 ObjC 中编写遍历方法的方式类似于这样——您将传入一个您在其他地方创建的数组,然后它会填充它。
- (void)addToHierarchy:(NSMutableArray *)hierarchy
{
[hierarchy addObject:self];
for (T * child in [self children]) {
[child addToHierarchy:hierarchy];
}
}
关于c++ - ObjC 中 & 的等价物是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19851676/