如何寫C 而不是C with Class

時間 2021-05-11 14:14:56

1樓:

老老實實用虛函式,不要聽一些邪教徒用模版。尤其是複雜函式式程式設計,std::function內部照樣是用虛函式。

把C++當一門更快的指令碼語言,而不是更優雅的C。絕大多數邏輯是執行時解決的,而不是編譯期解決的。

2樓:

大佬們寫c++都是物件導向程式設計,有封裝有繼承有多型,我等渣渣寫完發現是基於物件程式設計,繼承和多型肯定是沒有,是否有封裝還得看自己是不是偷懶把所有成員變數都搞成public。。。

3樓:leinlin

c++三個部分,原生C 、C with class、C with template。模板預編譯很強大,可以拿來預算 sin(x)的值

4樓:熊起

在語言正規化之前,先考慮封裝性思路的差異。CwithClass如果能把實現塞到合適的位置問題也不大,本身也不和模板多型衝突。

如果感覺自己在寫CwithClass,推薦一本書:<C++沉思錄> Andrew Koenig / Barbara E.Moo。對比一下自己的抽象思路和書裡最簡單的基於物件部分的封裝思路。

5樓:李遙

我維護過乙個商業C++編譯器的STL庫,而且早期也是模版的愛好者。不過現在我認為C with Class是比模版更好,而且是好得多的程式設計模式。除了最關鍵路徑上的對效能最敏感的演算法也許有那麼一點點可能需要用模版,其餘的場合應該只用C with Class

6樓:

我也學習了一段時間的C++。感覺和C的差別還真是挺大的,C的語法非常簡潔明瞭,後者則支援物件導向,模板等語言特性。個人感覺要用好現代C++,很重要一點就是理解C++的思想,參考best practise,學習前人經驗,畢竟有些東西,自己想不到這麼全面,推薦Effective C++這本書。

還有就是C++裡一些重要的思想,比如RAII,對於資源管理要思考的東西更多更細緻,用好構造和析構,對於資源管理多使用shared_ptr weak_ptr。摒棄一些C的習慣,比如指標到處飛,隨意開陣列,任性的型別轉換等。C++裡其實很多好用的東西,比如型別推斷,auto可以經常用,lambda表示式,簡單函式直接inline等等。

多使用STL裡面的元件。其實,C++作為一門混合了物件導向的語言,免不了要學習一些常見設計模式,比如常見的策略模式,觀察者模式,單例等,所以補充一下設計模式的知識點也很有用。

建議就是,Effective C++ 那兩本,還有STL原始碼剖析,這三本書看了對理解C++的思想很有幫助。

7樓:

個人觀點謝絕爭論:我們大多數人都是在C++誕生完善並且有了很多元素以後開始學的,而很多大佬可能是從C一路過來的。所以我們覺得C++很豐富也很難,而很多大佬卻嗤之以鼻。

從C過來的都不可避免經歷C with class的過程,畢竟C最顯而易見的缺陷就是物件模型和對應的語言包裝。所以只寫帶Class的C並不算有問題,但是隨著你的深入,C++提供的其他元素就會一點點的浮現出來,有了類,那可以用類包裝資料,然後資料物件可能需要操作符過載,然後寫了某些共性的類,發現有需要操作他們,此時模板就要用上了,虛函式定義介面也得用,如果開始寫點大點的專案就會用STL或者Boost,你就會不可避免的採用更多的C++手法,如果你還需要呼叫別的庫,如果是個C++的庫,你就會越來越多的採用C++的東西。我的意思是,其實隨著你對C++的了解深入和專案的規模,慢慢會用到越來越多,但是如果你可以做到一直不用,估計你就是高手了。。。

8樓:

@空明流轉

@vczh 已經說得很好了。我想加一句。如果你對於狀態/上下文有理解的話,就會盡量避免使用類,繼承,轉而使用模板來進行抽象,減少重複。

9樓:冒泡

不知道題主覺得哪些特性、以及為啥覺得用這些特性寫的C++才優美,class也是很重要的一部分,光C with class已經很不錯了吧

10樓:

C++優美?你怕不是沒點進去看過那一坨template……

愛怎麼寫就怎麼寫,適當地抽象,避免又臭又長,另外不要強求效能(追求效能通常很難做到優美)

然而這跟C++語言本身關係不大……

C 如何寫乙個簡單Logger

dc lin 可以去 看看,裡面的logging庫不少。 Logger本身不能阻塞程式的執行,至少不能有較為明顯的阻塞,因此非常適合非同步模型 Logger本身適合流式處理,連續寫不考慮隨機修改之類的問題 日誌內容一旦生成就應該脫離Caller管理,因此Caller不應該負責物件的銷毀,適用移動賦值...

如何寫乙個這樣的C 程式?

wythe colin 判斷是否是乙個數字,在C 中個人喜歡用正規表示式,比轉換後再判斷的效能要高.public static bool IsNumeric this string value 放在乙個靜態類中,即可直接呼叫判斷.如果想讓使用者在輸入的時候就限制只能輸入實數,則可以定義文字框事件,輸...

如何寫軟文?

星空媒體PR 1.標題採用 數字 效果 的模式 例如 盤點化妝的三個誤區,讓你擁有明星般完美妝容2.標題採用 問題 觀點 的模式 例如 年紀輕輕精緻窮我錯了嗎?奇葩說的辯題直戳人心,引人思考3.標題採用 社會現象 引發共鳴 的模式 例如 25歲還單身的我不想再被催婚了,比起脫單我更想脫貧寫了這麼久的...