非常喜歡java的代碼風格以及結構,網上搜索了一下,發現了acdk這個開源庫,下載來一看確實不錯。它是個采用C++寫的符合Java使用習慣的一套平臺獨立的分布式程序開放框架,從底層lang io local到net、security再到xml以及所有腳本語言的支持以及com javabean corba等,對GUI略有支持。看上去非常不錯,打算學習一段時間之后,希望能把自己的一些積累的技術融入進來。
#include <acdk.h>
#include <acdk/lang/System.h>
#pragma warning
//static
int acdkmain(RStringArray args)

{
try
{
}
catch(RThrowable ex)
{
}
return 0;
}



int main(int argc, char* argv[], char** envptr)

{
return acdk::lang::System::main(acdkmain, argc, argv, envptr);
}下班了,沒時間寫了,暈。第一個,看不出太大區別。
Go on...... 當然任何技術提供服務的同時,你必須遵守它的一些玩法。下面是一些初步嘗試,走馬觀花過一些基本概念,看看最基本的特性。
創建對象:
RStringBuffer sb = new StringBuffer();
acdk實現了基于引用技術的自動內存管理方式,當然你得按照它的規則來玩:即使用R類的引用對象把原生的對象指針Hold住,看起來還算舒服。當然調用方法你就得使用指針來操作(符合C++習慣):
sb->append("Hi");
調用靜態方法:
RString str = String::valueOf(3.4);
對象的引用技術為0的時候,會自動銷毀。通常是計數對象出作用域或者賦值Nil的時候,可以銷毀對象。
很自然的,R系列的對象都符合引用原則,即賦值的時候,僅僅改變內部原始_ptr指針以及引用計數:
RStringBuffer sb1 = new StringBuffer("A");
RStringBuffer sb2 = sb1; // sb2 contains the same StringBuffer instance
sb2->append("C");
sb1->append("DK"); // StringBuffer now contains "ACDK"假如想拷貝一份內部對象,可以這樣:
RStringBuffer sb2 = sb1->clone()一般情況下,方法的參數以及返回值類型使用引用類型,即R類:
RInteger myParse(RStringBuffer arg)

{
RString str = arg->toString();
RInteger erg = new Integer(Integer::parseInt(str));
return erg;
}

