C++Builder为C++增加的关键字

C++Builder为C++增加了许多关键字,以适应其快速应用开发(RAD)环境。包括两个类范围关键字以及自动Get/Set指令的支持。
1.新的类范围
从前面的介绍,我们知道类中包含二个类成员说明,分别是public、private和protected。C++Builder定义了两个新的对类的说明,他们是published和automated。
published范围限定词允许C++Builder在设计期间组件的属性,这个新的限制允许与public相同的权限。用_published限制的类成员在运行期间是可用的(就像public类成员一样),而且设计期间也是可用的。这就是为什么在C++Builder对象查看器中可以设
置组件属性的原因。在c++Builder窗体中加入的组件都会自动在published中声明。
新建一个工程,随便在窗体上加入几个组件,然后切换到代码窗口中,在Unitl.cpp中选择快捷菜单中的Open Soruce/Header file命令,切换到Unitl-h文件中,我们可以看到如下所示的类的声明:
class TF0rml:public TForm
{
_published:
TButton *Buttonl;
TLabel *Labell
TEdit *Editl
priVate:
public:
_fastcall TForml(TcompcNfent *0wner);
}
可以看出,在窗体中加入的组件都在published段中声明。
如果需要向一个窗体加入成员变量或方法,那么应该private或public段中加入,而不应该放在published段。一般情况下,不能手工修改窗体类的published段,所有带声明的组件都会对应于窗体的DFM文件,因此手工修改可能造成两个文件的不匹配。
autometed与public或published具有相同的权限,不同之处是,它用于创建类的OLE信息。通常用于创建OLE Automation Servers。当在C++ Builder中建立OLEAutomation Servers时,编译器会为成员函数及属性产生OLE Automation信息,并声明在autometed段中。
2.Get/Set指令
除了数据成员和方法之外,C++Builder中的类还可以包含属性。通过在对象查看器中设置属性值了解属性的含义,其实它还有更为广泛的用途。
属性与类成员,特别是私有成员有着密切的联系。属性提供了一种信息隐藏的机制。属性是通过Get/Set指令来实现的。要每个私有类成员,可以编写一个指令去获取(Get)值,另一个指令去设置(Set)值,这就是所谓的Get/Set指令。因为并没有直接类的私有部分,所以这种方法能提供良好的信息掩蔽,而且以后还能随意改变内部的数据形式。可以像一个简单变量一样来属性。
3.fastcall
在C++Builder的窗体方法中自动产生fastcall,这是编译器指示方法参数通过寄存器传输,而不是通过堆栈。这是所有窗体类方法所必须的。然而,如果加入自定义的方法也需要遵循这一要求。

你可能感兴趣的:(C++Builder为C++增加的关键字)