C++ 从重载运算符返回多个参数
我可能没有正确地执行此操作,但是否可以从重载中获取多个返回值?我使用重载来比较二叉搜索树中的对象 我有大约5个,但我会发布两个(反正它们都很相似) 因此,我有三个函数来比较BST中“ExtPersonType”的对象。我尝试了这个函数,因为我看到了一些示例,但没有成功(输出是随机的,数据没有意义) 如果我一次做一个返回语句(即注释掉其他语句)。它工作得很好,但显然并不理想 有什么想法或事情我可以试试吗?提前多谢 编辑: 张贴进一步的代码 我有一个函数(或多个函数),其中我以字符串或int作为输入。我将其传递给我的BST,在那里我使用它进行搜索和/或打印。我传入的值是->getLastName(),它与(左,值)进行比较//查找匹配项、检查整个树的递归方法 如果(树->值==值) 不能评价权利、价值); } 例如,我使用上述方法查看所有生日相同的人(列出所有一月生日的人) 正如前面提到的,一切都是有效的,所以我遇到的问题不是方法,而是过载。因为我还有两个类似的函数。。。C++ 从重载运算符返回多个参数,c++,C++,我可能没有正确地执行此操作,但是否可以从重载中获取多个返回值?我使用重载来比较二叉搜索树中的对象 我有大约5个,但我会发布两个(反正它们都很相似) 因此,我有三个函数来比较BST中“ExtPersonType”的对象。我尝试了这个函数,因为我看到了一些示例,但没有成功(输出是随机的,数据没有意义) 如果我一次做一个返回语句(即注释掉其他语句)。它工作得很好,但显然并不理想 有什么想法或事情我可以试试吗?提前多谢 编辑: 张贴进一步的代码 我有一个函数(或多个函数),其中我以字符串或int作为输入
}你想实现什么目标?请张贴一份说明您的问题的说明。您的
建立了一种看起来非常可疑的订购关系-如果两个人的姓氏相同,那么没有人会比另一个人的姓氏更大。我怀疑您是否希望在搜索树中使用它。可能的副本您没有比较ExtPersonType
的三个函数,您有两个,即
和=
。如果您的第一次尝试在您依次注释其他人时成功,那么他们必须正确返回bool
,因此我不明白为什么您的第二个操作符>
将每个比较与&&
相结合而不起作用。期望的结果是什么?是否希望函数(或运算符,如果需要)返回三个布尔值?
bool ExtPersonType::operator > (ExtPersonType bob){
return (this->getLastName() > bob.getLastName());
//return (getDate().getMonth() > bob.getDate().getMonth());
//return (this->getStatus() > bob.getStatus());
}
bool ExtPersonType::operator==(ExtPersonType bob){
return (this->getLastName() == bob.getLastName());
//return (getDate().getMonth() == bob.getDate().getMonth());
//return (this->getStatus() == bob.getStatus());
}
bool ExtPersonType::operator > (ExtPersonType bob){
return (this->getLastName() > bob.getLastName() &&
getDate().getMonth() > bob.getDate().getMonth() &&
this->getStatus() > bob.getStatus());
}
void DTBinarySearchTree<T>::search(Node<T> *tree, T value)
{
if(tree){
search(tree->left, value); //recursive method that locates matches, checks entire tree
if( tree->value == value)
cout << tree->value << endl;
search(tree->right, value);
}