重载运算符返回类型

马纳塔

是否可能使返回字符串而不是类类型的运算符重载?

string operator++() {
    index++;
    if (index > num_atts) {
        index = 0;
    }

    string ret = att_names[index];
    return ret;

}
保罗·埃文斯

您可以返回自己喜欢的任何类型,就像您编写的任何其他函数一样。但是,就像任何其他函数一样,您无法返回指向将要超出范围的局部堆栈变量的指针,这是未定义的行为。最简单的解决方法是简单地返回string,例如:

std::string operator++() {
    // ...
    return ret;
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章