+ -
当前位置:首页 → 问答吧 → 怎么重载运算符

怎么重载运算符

时间:2011-12-16

来源:互联网

在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怎么重载运算符,怎么才能比较两个对象。

作者: nuozhai   发布时间: 2011-12-16

form的=重载,没试过

作者: ksrsoft   发布时间: 2011-12-16