c++ - ObjC 中 & 的等价物是什么?

标签 c++ objective-c

真的很晚了。如果您能告诉我 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/

相关文章:

iphone - 旋转图像层保持中心

ios - 尝试显示其 View 不在窗口层次结构警报中

c++ - 如何在单个 for 循环中反转链表?

iphone - 滚动时读取 UIPickerView 的位置?

c++ - CMake 链接找不到库

c++ - 如何排序比 n log n 更快(给定列表上的强条件)?

iphone - 自定义对象的Dealloc

ios - 如何访问 objective-c 文件中的swift公共(public)函数?

c++ - 为什么使用静态数组而不是动态数组?

c++ - 有没有办法反省数组的大小?