首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ Builder >

如何重载运算符

2012-03-13 
怎么重载运算符在form1中声明 运算符class TForm1 : public TForm{__published:// IDE-managed Componen

怎么重载运算符
在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的=重载,没试过

热点排行