从重载的运算符返回多个参数

时间:2015-04-29 12:08:54

标签: c++

我可能没有正确地执行此操作但是可以从重载中获取多个返回值吗?我正在使用重载来比较二进制搜索树中的对象。

我有大约5个,但我会发布2个(它们都是相似的)。

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());  
}

所以我有三个函数来比较BST中“ExtPersonType”的对象。我尝试了这个,因为我看到一些例子,但没有运气(输出随机吐出,数据没有意义)。

bool ExtPersonType::operator > (ExtPersonType bob){
     return (this->getLastName() > bob.getLastName() &&
            getDate().getMonth() > bob.getDate().getMonth() &&
            this->getStatus() > bob.getStatus());
}

如果我一次做一个回复陈述(即评论其他陈述)。它工作得很好,但显然不是很理想。

我可以尝试任何想法或事情吗?非常感谢!

编辑: 发布更多代码。

我有一个函数(或函数),我把一个字符串或int作为输入。我将它传递给我的BST,我用它来搜索和/或打印。我传入的值是this-> getLastName(),它与(<,==等)currentNodeinBinaryTree.getLastName()

进行比较
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);
    }

我使用上述方法查看所有拥有相同生日的人(例如列出所有1月生日的人)。

再次提到一切都有效,所以这不是方法,而是我遇到麻烦的重载。因为我有两个像这样的其他功能......     }

0 个答案:

没有答案