我在使用operator ==在以下C++程序中遇到了一些问题。问题与运算符==
#include < iostream>
using namespace std;
class A
{
public:
A(char *b)
{
a = b;
}
A(A &c)
{
a = c.a;
}
bool operator ==(A &other)
{
return strcmp(a, other.a);
}
private:
char *a;
};
int main()
{
A obj("test");
A obj1("test1");
if(obj1 == A("test1"))
{
cout<<"This is true"<<endl;
}
}
if(obj1 == A("test1"))
是怎么回事?任何帮助表示赞赏。
这是错误的答案。 strcmp问题是正确的。 – 2009-12-07 13:49:41
感谢您的快速回复!我观察到的一件事是这个工作拷贝构造函数的参数也应该是const。 A(const A&c) – CPPDev 2009-12-07 13:53:43
您能否以清晰的答案为例? – Ashish 2009-12-07 13:59:36