題目是這樣的:
問:不使用任何循環語句,遞歸,輸出打印n條(n>1) "Hello World"。
解這道題目,利用了c++語言一個非常重要的特性:
c++允許定義基于statck數據區的Object。由此,不由想到了Java.
在Java的世界里,所有的類型都是引用(或者稱為指針), 對象內存的分配都是通過new從heap上顯式的分配,無法在Java里構建基于statck數據區的對象。所以在Java里,這道題目是無解的。
Java之于c++,既是進步,又是倒退。
Java語言本身的確幫助c++程序員做了很多事情,比如GC, 去掉了c++中很多復雜的特性,比如多重繼承,運算符重載等。
同時,c++本身的很多優點,也喪失了。 寫了c++, 然后再寫java,一個明顯的感覺是,沒法使用java寫出像c++一樣簡潔的程序。
比如, 沒有了運算符重載, 你不得不使用equal方法來表達兩個對象的相等。
Java不能顯式表達RAII概念,你不得不使用hard code的方法Log方法的進入和退出, 如:
func() {
log("enter func");
//do something.
log("exit func");
}
Feedback
我想樓主想表達的意思并不在于該題本身,而是RAII
我隨意搜索了一下,有興趣可以繼續看下:http://hi.baidu.com/joel%5Ftan/blog/item/8682fcd8ceefeb3032fa1c3b.html
相信大家不會認為博主的這點“簡單”想法不是“nosense”。
回復 更多評論
我隨意搜索了一下,有興趣可以繼續看下:http://hi.baidu.com/joel%5Ftan/blog/item/8682fcd8ceefeb3032fa1c3b.html
相信大家不會認為博主的這點“簡單”想法不是“nosense”。
回復 更多評論
只有注冊用戶登錄后才能發表評論。 | ||
【推薦】100%開源!大型工業跨平臺軟件C++源碼提供,建模,組態!
![]() |
||
網站導航:
博客園
IT新聞
BlogJava
博問
Chat2DB
管理
|
||
|