我写了一个包含地图的类,这个类实际上有很多方法但是相关的部分基本上是这样的:
class myContainer{
std::map<int, std::string> names;
std::string operator[](int num){
return names[num];
}
}
简单的 []
运算符重载,并且可以正常工作。
然后,我通常使用指向 myContainer
的指针,例如 myContainer* cont = new myContainer;
,因此我必须执行诸如 (*cont)[num]
之类的操作才能使用重载运算符。有没有办法让它更干净?理想情况下只是 cont[num]
......但它有问题,因为我知道你不能在指针上重载运算符。那么有没有更干净的方法来做到这一点?我最好的想法就是定义一个新方法
std::string getName(int num){
return names[num];
}
然后我可以做 cont->getName(num)
,但这比我的其他选择更不舒服。在这种情况下,有没有办法在指针上重载 []
?