如果您想要定義一個方法,通過該方法可以對您的custome類的一組對象進行比較。例如:
someClass instance1;
someClass instance2;
您可以通過重載此類的<運算符來完成此操作。
class someClass
{
bool operator<(someClass& other) const
{
//implement your ordering logic here
}
};
如果你想要做的是比較,看看對象是字面上相同的對象是什麼,你可以做一個簡單的指針比較,看看他們是否指向同一個對象。我想你的問題措辭不好,我不確定你要去哪。
編輯:
對於第二種方法,它真的很容易。你需要訪問你的對象的內存位置。您可以通過許多不同的方式訪問它。這裏有幾個:
class someClass
{
bool operator==(someClass& other) const
{
if(this == &other) return true; //This is the pointer for
else return false;
}
};
注:我不喜歡上面的,因爲通常==操作符去更深入的不僅僅是比較指針。對象可以表示具有相似質量的對象而不是相同的,但這是一個選項。 YOu也可以做到這一點。
someClass *instancePointer = new someClass();
someClass instanceVariable;
someClass *instanceVariablePointer = &instanceVariable;
instancePointer == instanceVariable;
這是非感性的,無效/錯誤。如果它甚至會編譯,根據你的標誌,希望你使用的標誌不會允許這個!
instancePointer == &instanceVariable;
這是有效的,會導致錯誤。
instancePointer == instanceVaribalePointer;
這也是有效的,會導致錯誤。
instanceVariablePointer == &instanceVariable;
這也是有效的,並會導致TRUE
instanceVariable == *instanceVariablePointer;
這將使用上面定義得到的TRUE結果的==操作符;
你做*不*有一個 「類的對象'MyCloth'」。如果你相信,你*真的*必須重新思考很多關於C++的知識。 –
...爲什麼ptr ptr? – IdeaHat
@ Kerrek SB:我只是想解釋我想做什麼,我知道我不能有MyCloth班的對象,但我不知道該怎麼做,我是新來的C++並試圖在創建項目時弄清楚它。 – user2399378