我有一个以下列方式声明的类:
#ifndef MYCLASS_H
#define MYCLASS_H
class MyClass : public MyOtherClass
{
public:
MyClass();
int a() const{ return _a; };
int b() const{ return _b; };
private:
int _a;
int _b;
};
inline bool operator==( const MyClass& lhs, const MyClass& rhs )
{
return (lhs.a() == rhs.a()) && (lhs.b() == rhs.b());
}
#endif
我的问题是重载中设置的任何断点都operator==
不会被命中,Visual Studio 甚至告诉我执行永远不会到达这个函数。我遵循这个经验法则来重载比较运算符,但除了使它们成为非成员之外,它没有提到任何其他内容,所以我不确定我是否错过了运算符重载或内联函数的某些内容。
谁能告诉我为什么我的断点永远不会被击中?