ACDK指南-ACDK的类型
翻译:薛长宇
在 ACDK 中,你能使用可以被用于 C++语言的所有可能的类型. 然而,如果你想要你的代码能被被像垃圾收集,对象串行化,调试 ,脚本等等支持,那么你应该使用被 ACDK 支援的类型。
本章内容:
基本内置类型
继承的类型
简单的类
接口
接口类
命名空间
基本内建类型
正如同Java,下列的类型被映射到ACDK:
ACDK
Java
注释
bool
boolean
必须被C++编译器支持
char
char
!
8/7 bits字符
ucchar
char
!
16 bits 宽字符
byte
byte
映射到 (unsigned char)
short
short
int
int
jlong
long
编译器必须支持.
影射为(long long)或者 int64
float
float
double
double
!
类型标记为 'unsigned' (unsigned long) 或者'const' (const int)的不被支持.
也不支持指针(char*)和数组(int[]).
请参看: 基本类型.
继承的类型
ACDK 遵守Java关于类的开发的规则:
1、所有具体的类 (无接口)必须直接或者间接地继承于acdk::lang::Object
2、从 acdk::lang::Object 多重继承是不被支持的.
3、接口是纯虚类.
4、一个类可以有多个接口.
简单的类
正如同Java, 所有的类必须直接或者间接继承于acdk::lang::Object.
#include <acdk.h>
ACDK_DECL_CLASS(AClass);
class AClass
: public acdk::lang::Object
{
};
// 或者
#include <acdk/util/HashMap.h>
ACDK_DECL_CLASS(ASpecialMap);
class ASpecialMap
: public acdk::util::HashMap
{
};
请参看:对象类型.
接口
接口的使用完全模仿Java:
#include <acdk.h>
ACDK_DECL_INTERFACE(AInterface);
class AInterface
{
public:
virtual void doIt(RString arg) = 0;
};
请参看:接口类型.
接口类
在已知的类 Aclass和类的Ainterface, 执行起来看起来如同这个:
class BClass
: public AClass,
implements AInterface
{
public:
BClass()
: AClass()
{
}
virtual void doIt(RString arg)
{
// 执行这里
}
};
命名空间
ACDK 使用C++命名空间将类分组到包中.
#include <acdk.h>
using namespace acdk::lang;
using namespace acdk::io;
class MyWriter
: extends acdk::io::AbstractWriter,
implements acdk::io::Serializable
{
// ...
};
作为替代using namespace 你可以使用
USING_CLASS(::acdk::namespace::, ClassName);
这在一些编译器中可能是必然的,因为他们不能准确地描述
例如. MS VC++.
#include <acdk.h>
USING_CLASS(::acdk::lang::, String);
USING_CLASS(::acdk::io::, File);
class MyWriter
: extends acdk::io::AbstractWriter,
implements acdk::io::Serializable
{
// ...
};
请参看: 命名空间类型
这是我随意翻译的一篇文章,介绍分布式framework ACDK。这是一个国外很多人在用,但是国内却没有介绍的项目。希望大家能喜欢,因为很随意,所以没有对文中的内容翻译进行校对,因此难免很多缺憾,请大家原谅
翻译:薛长宇
2004-12