1、傳統的C++類
由于ACDK也是C++代碼,所以在傳統C++類中使用ACDK類是沒有問題的
// this is a NON ACDK class
class AClass

{
int _val;
public:
AClass() : _val(42)
{
}
// a NON ACDK class can make usage of ACDK classes.
RString get()
{
RStringBuffer sb = new StringBuffer();
sb->append(_val);
return sb->toString();
}
};2、類型定義
為了獲得ACDK框架的的一些特性(垃圾回收,應用于集合、反射以及腳本中等),你的類型定義需要滿足以下幾個條件:
a、所有可實例化的類必須直接或者間接派生于acdk::lang::Object
b、不運行多重繼承自acdk::lang::Object
c、接口類是純虛類
d、類可以實現幾個接口
例如:
類定義:
ACDK_DECL_CLASS(AClass);
class AClass : extends acdk::lang::Object

{
int _val;
public:
AClass(int number) : Object(), _val(number)
{
}
};
RAClass aclass = new AClass(42);接口定義:
ACDK_DECL_INTERFACE(AInterface);
class AInterface ACDK_INTERFACEBASE

{
public:
virtual void doIt(IN(RString) arg) = 0;
};當然,為了利用ACDK對象模型的元特性(象序列化、垃圾回收,腳本調用),必須在類中添加元信息(Metainfo)。


