单目操作符重载.cpp
#include <vcl.h>
class A {
int k;
int m;
public:
A(int n) {
m = k = n;
} // 构造函数
UnicodeString Show_k() {
return "k=" + (UnicodeString)k;
}
UnicodeString Show_m() {
return "m=" + (UnicodeString)m;
}
void operator++(); // 前置++,成员函数
void operator++(int); // 后置++,成员函数
};
void A:: operator++() // 前置++
{
m = ++k;
}
void A:: operator++(int) // 后置++
{
m = k++;
}
Unit1.cpp
#include <vcl.h>
#pragma hdrstop
#include "单目操作符重载.cpp"
#include "Unit1.h"
// ---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
// ---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner) : TForm(Owner) {
}
// ---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender) {
A a(0);
Memo1->Text = "单目操作符重载 C++ Builder演示";
Memo1->Lines->Add(a.Show_m());
Memo1->Lines->Add(a.Show_k());
++a; // 前加加
Memo1->Lines->Add(a.Show_m());
Memo1->Lines->Add(a.Show_k());
a++; // 后加加
Memo1->Lines->Add(a.Show_m());
Memo1->Lines->Add(a.Show_k());
Edit1->Text = Memo1->Lines->Strings[1];
}
// ---------------------------------------------------------------------------
输出效果