我正在构建自定义运算符,但在向它们传递参数时遇到了问题。
例如
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/