これはあまりにもローカライズされた質問かもしれませんが、私はポインタに不慣れであり、これは私が何か間違ったことをしている場合に他の人を助けるかもしれません。
プロジェクトでは、教授が作成OrdListClass
したオブジェクトから派生したを作成しています。はオブジェクトファイルなので、ソースがありません。ListClass
ListClass
これまでのところ、私はこのプロジェクトで非常にうまくやっていますが、を扱うときにこの障害にぶつかりましたOperator==
。
私myList == yourList
はオペレーターを呼び出すために使用します。
私の論理は、現在適用しているオブジェクトと、それを比較しているオブジェクトの両方に対して、彼ListClass
が提供したメソッドを使用することです。GetListPtr()
rtOp
ただし、使用する場合
ItemType* currPosPtr = GetListPtr(); //this class' List Pointer
と
ItemType* rtOpPosPtr = rtOp.GetListPtr(); //rtOp object's list pointer
それらは同じポインタアドレスを返しますか?
これが私のせいなのか、それとも私が与えたオブジェクトファイルのエラーなのかはわかりません。
bool OrdListClass::operator== (const OrdListClass& rtOp) const
{
ItemType* currPosPtr = GetListPtr(); //this class' List Pointer
ItemType* rtOpPosPtr = rtOp.GetListPtr(); //rtOp object's list pointer
if (GetLength() == rtOp.GetLength()){ //If the lengths are equal
/*** DO KEY COMPARISONS HERE ***/
}else{ //Lengths are unequal
return false; //List can't contain the same items
}//End lengths if
return true; //All items were compared, all keys match
}//End Operator ==