C++ 对象指针的重载运算符

时间:2021-01-29 22:32:02

标签: c++ pointers operator-overloading

我写了一个包含地图的类,这个类实际上有很多方法但是相关的部分基本上是这样的:

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),但这比我的其他选择更不舒服。在这种情况下,有没有办法在指针上重载 []

0 个答案:

没有答案
相关问题