我在使用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