如果您想定义一种方法来对自定义类的一组对象进行比较排序。例如:
someClass instance1;
someClass instance2;
您可以通过为此类重载<运算符来实现。
class someClass
{
bool operator<(someClass& other) const
{
}
};
如果您想进行比较并查看对象是否确实是相同的对象,那么可以进行简单的指针比较以查看它们是否指向同一对象。我认为您的问题措辞不太准确,我不确定您想要什么。
编辑:
对于第二种方法,它真的很容易。您需要访问您对象的内存位置。您可以以许多不同的方式访问此位置。以下是一些示例:
class someClass
{
bool operator==(someClass& other) const
{
if(this == &other) return true;
else return false;
}
};
注意: 我不喜欢上面的做法,因为通常“==”运算符会比仅比较指针更深入地进行比较。对象可以表示具有相似特征但不相同的对象,但这是一种选择。您也可以使用以下方法。
someClass *instancePointer = new someClass();
someClass instanceVariable;
someClass *instanceVariablePointer = &instanceVariable;
instancePointer == instanceVariable;
这是毫无意义和无效/错误的。即使它能编译,取决于您的标志,希望您使用不允许此类操作的标志!
instancePointer == &instanceVariable
这是有效的,并且将导致false。
instancePointer == instanceVaribalePointer
这也是有效的,结果将为false。
instanceVariablePointer == &instanceVariable
这也是有效的,结果为TRUE。
instanceVariable == *instanceVariablePointer
这将使用我们上面定义的 == 运算符来获取 TRUE 的结果;
MyCloth
的对象”。如果你认为有,那么你需要重新思考很多关于C++的事情。 - Kerrek SB