我正在重构一段遗留代码。我需要将指针与引用进行比较,以确定两个对象是否相等。SO中的此问题通过比较内存地址来判断它们是否相等。如果我像下面这样将指针和引用进行比较,会出现任何问题(任何特殊情况)吗?到目前为止,在我的测试中,它正常工作。请给些建议。
#include <stdio.h>
#include <iostream>
class MemberData
{
//Huge class with many data members
};
int main()
{
MemberData x ;
const MemberData& y = x;
MemberData *ptr= &x;
if(std::addressof(*ptr)==std::addressof(y))
{
std::cout << "Both are equal" << "\n";
}
return 0;
}