ACDK指南-ACDK的类型

来源:互联网 发布:nodejs 本地数据库 编辑:程序博客网 时间:2024/04/28 02:30

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

 

 

 
原创粉丝点击