class TMyClass
{
public:
inline TMyClass() { a = 0; } //默认值
operator int () { return a; }
operator AnsiString() { return a; }
inline void SetA(int v) { a = v; } //用这个成员函数可以改变a值
private:
int a;
friend void FuncSetA(TMyClass&,int); //这个函数为友元函数也可以改变a值
};
void FuncSetA(TMyClass &c, int v) //友元函数可以访问类的私有变量
{
c.a = v;
}
TMyClass a; //定义默认为只读的全局变量,默认值由构造函数确定的
void __fastcall TForm1::Button4Click(TObject *Sender)
{
int x = a;
Memo1->Lines->Add(a);
Memo1->Lines->Add(x);
a.SetA(5); //用这个成员函数改变a值
int y = a;
Memo1->Lines->Add(a);
Memo1->Lines->Add(y);
FuncSetA(a,8); //也可以用这个友元函数改变a值
Memo1->Lines->Add(a);
//a = x; //此句非法
//a.a = x; //此句非法
}
--------------------next---------------------
阅读(1138) | 评论(0) | 转发(0) |