我一直试图在我的程序中使用运算符重载,但是我一直在遇到问题。运算符超载的问题
基本上,我有一个二叉搜索树,我试图得到它,所以如果你输入“tree = tree + 7”之类的东西,它会将键值7添加为一个节点。我一直在与代码尝试做到这一点:
struct addToTree {
string treeName;
int value;
string output;
string operator+(string addToTree &lhs, int addToTree &rhs) {
addToTree temp;
temp.output = lhs.treeName + to_string(rhs.value);
return temp.output;
}
};
目前,我只是试图让它拿树的名称,并添加到该值是在用户输入要添加到那个树。
我目前收到一些错误,我不认为我的代码甚至接近它应该如此,如果任何人可以给我建议,告诉我我应该做什么,那将是非常感激。
'int addToTree%rhs'?显示你的真实代码。您的'operator +'显示为返回一个'addToTree',但它显然返回了一个'string'。这是真的吗?还是只是另一个错字? – 2015-03-19 10:50:50
这应该是&rhs,但我不知道这是否更有意义,它应该返回一个字符串用于测试目的。我现在修好了。 – user3746428 2015-03-19 10:52:26
这种操作符重载几乎总是有害的。您的操作员应该具有与标准版本相同的语义,否则您和任何后来查看您代码的人都会遇到一些头疼的错误。 “做整数做” – TartanLlama 2015-03-19 10:53:07