我正在将一个 Objective-C 应用程序移植到 C++ 中,我决定创建一个类似于 NSObject 和 NSDictionary 的类。如果你不熟悉这个系统,NSObject 是一个对象,它所有对象都继承了 Obj-C 中的形式,然后它里面有一个引用计数机制。当没有更多引用时,对象会释放自己。
在我的代码中,我希望能够执行以下操作
CMDictionary["Key"] = Object;
在内部,这存储为
Map<string, CMObject*> mDictionary
每当一个新对象被分配给该对象时,字典必须通过调用其保留函数以及对该新对象可能已替换的任何对象调用释放来保留该对象。我的问题源于这样一个事实,即我无论如何都找不到运行代码并确定何时在赋值中使用括号,因为我不希望在编写类似的东西时调用保留函数
CMDicionary["key"]->StringValue();
无论如何都会这样做,还是我只需要使用 getter/setter 函数来修改我的字典