怎么重载运算符
在form1中声明 ==运算符
class TForm1 : public TForm
{
__published:// IDE-managed Components
TButton *btn1;
private:// User declarations
inline bool operator ==(TForm1 * frm);
public:// User declarations
__fastcall TForm1(TComponent* Owner);
int i;
};
运算符函数
bool TForm1::operator ==(TForm1 * frm)
{
if(frm->i == this->i)
return 1;
else
return 0;
}
调用
void __fastcall TForm1::btn1Click(TObject *Sender)
{
TForm1 * frm1 = new TForm1(NULL);
TForm1 * frm = new TForm1(NULL);
frm1->i = 1;
frm->i = 1;
if(frm1 == frm)
ShowMessage("");
}
调试结果是不相同,if(frm1 == frm) 比较的是两个指针的地址是否相同 而没有去比较两个对象是否相同 请教bcb怎么重载运算符,怎么才能比较两个对象。
[解决办法]
form的=重载,没试过