C++ クラスで < および > 演算子をオーバーロードしようとしています
template <typename T>
bool BinaryTree<T>::operator < (BinaryTree<T> &B) {
return (this->count < B.setCount(0));
}
template <typename T>
float BinaryTree<T>::setCount(float c)
{
count += c;
return count;
}
setCount(0) は B obj のカウントを返します。しかし、これは比較された数値に関係なく、常に true を出力します。
私のコードをに変更します
template <typename T>
bool BinaryTree<T>::operator < (const BinaryTree<T> &B) {
return (this->count < B.count);
}
printf("%c %lf\n", tree[0]->getData(), tree[0]->setCount(0));
printf("%c %lf\n", tree[1]->getData(), tree[1]->setCount(0));
Output >
a 0.750000
b 0.250000
if(tree[0] < tree[1])
printf("0 < 1\n");
else printf("1 > 0\n");
Output >
0 < 1