这是我的问题。
我有一个包含对象数组的类(在 std::vector 中)这些对象可以从客户端代码修改,所以我创建了一个私有 getter,它返回指向我需要修改的对象的指针。公共方法使用此 getter 来修改数组中的对象。
私有 getter 还用于将数组中对象的某些特定值返回给客户端代码的其他成员函数。我希望这些函数成为并返回 const,但我不能这样做,因为我使用了前面提到的非 const getter。
我知道我可以制作另一个 const getter,但这只会重复代码。
如何正确实施?
代码示例:
class Object;
class Inventory
{
Object* GetObject(int id);
void AddObjectProp(int id, int amount) {
Object* x = GetObject id);
x->prop += amount;
}
//using const here is not posible because GetObject is not const
int GetObjectProp(int id) {
Object* x = GetObject id);
return x->prop;
}
}
谢谢你。