創作內容

2 GP

C++跟java在class上面的不同

作者:星白夜१ذ??؟¿ᷣᣎ│2024-02-25 21:10:35│巴幣:4│人氣:36
最近在coding C++, 得到的結論是語法上跟java真的有點像,但還是有蠻多不同的地方,像是switch case(其實是因為我java這邊都習慣lambda語法了); 指針啦(java裡面全部的物體都是指針,沒有指針跟實體的差別); array啦(C++ array就是指向第一個物體的指針,java的array大概是指針的指針?); list或vector啦(C++裡面的類別其實只是封裝過的結構體,如果你的類別有些東西沒定義的話直接用它的內建容器可能會編譯不過,java裡的類別都繼承了object類別,所以各種list基本上不會出錯)。總之還是差蠻多的。

但我覺得這些差別其實都還好,真正差別最大的果然還是類別這種東西。

首先C++的類別常常幹的事情是類內宣告類外定義(大概是類似於java的abstract class或interface),因為在類內定義的東西都是inline函數會造成檔案變大;相對之下java的函數一般都直接寫在class裡面了,個人覺得java的寫法封裝性比較好。

其次就是關於inner class的部分,C++的inner class全部都是static class,所以當裡面的class成員跟外面的class成員根本沒有任何直接關係,也就是如果要調用外面class的非static成員,你得先有一個static成員的指標......?我改用C++不就是嫌java的指標太多嗎?我知道這算是在無理取鬧,但C++在debug的時候常常會搞不清楚自己死在哪裡,因為在引用各種標頭檔跟模板之後,問題可能都已經轉好幾個彎了,而且因為有些東西不算嚴格,所以java不會出現的問題在C++裡面都會爆出來。

總之這其實是一篇被forward_list搞瘋的我所發的抱怨文
引用網址:https://home.gamer.com.tw/TrackBack.php?sn=5888817
All rights reserved. 版權所有,保留一切權利

相關創作

留言共 0 篇留言

我要留言提醒:您尚未登入,請先登入再留言

2喜歡★shiroyoru 可決定是否刪除您的留言,請勿發表違反站規文字。

前一篇:【音遊試玩】Paradi...

追蹤私訊切換新版閱覽

作品資料夾

lin881205大家
小屋不定期更新冷門西洋歌曲推廣與Reddit鬼故事翻譯唷!看更多我要大聲說1小時前


face基於日前微軟官方表示 Internet Explorer 不再支援新的網路標準,可能無法使用新的應用程式來呈現網站內容,在瀏覽器支援度及網站安全性的雙重考量下,為了讓巴友們有更好的使用體驗,巴哈姆特即將於 2019年9月2日 停止支援 Internet Explorer 瀏覽器的頁面呈現和功能。
屆時建議您使用下述瀏覽器來瀏覽巴哈姆特:
。Google Chrome(推薦)
。Mozilla Firefox
。Microsoft Edge(Windows10以上的作業系統版本才可使用)

face我們了解您不想看到廣告的心情⋯ 若您願意支持巴哈姆特永續經營,請將 gamer.com.tw 加入廣告阻擋工具的白名單中,謝謝 !【教學】