私は私が愚かであることを理解していますので、私に優しくしてください。はい、これは課題ですが、答えだけでなく、何が間違っているのかを理解したいです。
BSTIterator クラス テンプレートの二分探索ツリーのイテレータに対して、operator== および operator!= 関数を記述しようとしています。
与えられた (すべて同じクラス テンプレート内):
private:
BSTNode<Data>* curr;
...
bool operator==(BSTIterator<Data> const & other) const {
(here's where I do my magic)
}
operator!= も同じ設定です。
== のために書きます ...
return (&curr == other);
かっこは必要ないと思いますが、とにかく...これが私が持っているものです!=
return !(&curr == other);
私のコンパイラには != の問題がありますが、明らかに == ではありません。
それはたくさんのぐちゃぐちゃなグークを吐き出しましたが、私が知る限り、関連する部分は次のとおりです。
「&((const BSTIterator*)this)->BSTIterator::curr != other」の「operator!=」に一致するものはありません
そして、それは言う行を参照しますreturn !(&curr == other);
最初は、コンパイラも私の operator== 関数を気に入らなかったと思いますが、今では参照されていません。を除いて基本的に同じであるのに、なぜ一方が好きで他方が好きではないの!
ですか?
さらに情報を含める必要がある場合はお知らせください。