c++ - 传递参数c++时自定义运算符错误

标签 c++ string vector operators

我正在构建自定义运算符,但在向它们传递参数时遇到了问题。

例如

class test{
     public:
        test operator[](vector <string> s){
            test a;
            return a;
         }
}; 

现在如果我想在我的主程序中做这样的事情

 int main(){

    test d;
    vector<string> s;
    s.push_back("bla");
    d[s];
 }

我遇到了一堆错误。是因为我需要在某处有 const 还是我不知道。

我还内置了一个自定义运算符来打印类测试(<< 运算符)。现在我在主程序中调用 d[s] 时没有出现编译错误,但在主程序中调用 cout<< d[s] 时出现编译错误。运算符 << 正在工作,因为我用简单的 cout<< d

测试了它

最佳答案

return test;

test 是一种类型。您不能返回类型。也许你的意思是:

return a;

但是您会遇到另一个问题,因为您要返回对局部变量的引用。对象 a 将在函数返回时被销毁(因为那是它的作用域),因此引用将悬空。

关于c++ - 传递参数c++时自定义运算符错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16689423/

相关文章:

c++ - 传递给函数后 vector 的大小发生变化

C++:用于高效插入和检索自定义数据的数据结构

matlab - 如何添加不同长度的向量?

c++ - Python 不调用外部程序第 3 部分

string - 结构 str 属性必须是引用?

java - 如何根据光标位置分割线?

C++。优化一个使用大量常量字符串的程序

c++ - 判断一个点是否在由一组点生成的凸包中

c++ - While 循环构造与持续到 EOF 的 getline 函数相结合

c++ - opencv:如何将 float 组保存为图像