C 三種程式設計方式中既有C語言代表的過程語言又有oop,豈不是互相矛盾?

時間 2021-08-12 08:56:53

1樓:ll323

過程式和OOP是同乙個流派(imperative)裡的分支要硬說矛盾跨流派的正規化比如過程式 (imperative)和functional (declarative)還勉強可以說一下在某些地方不好磨合你這都是同乙個流派的東西怎麼就矛盾了呢...

2樓:Star.E

這豈是互相矛盾,根本就是群魔亂舞。哦不,八仙過海。

c++不止三種程式設計方式,過程式、物件導向、泛型、模版、模版元程式設計、函式式、預編譯處理器元程式設計,Reactive,等等。

雖然正規化那麼多,但實際上是不矛盾的。就像數學從公理出發,能推出無數定理,但這些定理是相容的,無矛盾的。c++靠零開銷抽象保證的無矛盾性。

c++表達力很強,經常被拿來造新正規化。所以還是群魔亂舞

3樓:C十十20年

C++是混合型OO,不是pure OO,參見介紹2017標準的《C++程式設計精要教程》。許多書都是抄啊抄的抄錯了,要麼就是翻譯的還不準確嚴謹。不過在讀了C++2020的標準後,也發現英文艱深晦澀,直譯的話會產生很多錯誤。

例如,在進行型別提取時用"已計算的表示式",那麼如何理解decltype(printf("ab")) a=3; 要計算printf或者說要列印出ab嗎?其實準確的說法應該是"型別己計算或可計算的表示式"。再比如,單純寫decltype([ ](int x)->int)就是型別不可計算的,因為該Lambda表示式可以解釋為"準函式"和"準物件"兩種型別,參見上述教程。

所以現在的教材真少有細心寫的,再如如下賦值語句a=sizeof(printf("ab")); 會列印出ab嗎?

4樓:Ninsun

我不知道你所謂的「矛盾」是指的什麼……

請問,乙個if語句是過程還是oop?

很顯然是過程吧。

那麼,你的意思是,使用oop,我們就再也不能去寫if語句了?

你怕不是對程式設計有什麼誤解。

乙個if語句既不是過程也不是oop?

那10個連續的if語句呢?

100個連續的if語句呢?

我用oop之後,就不能在乙個函式內連續寫if語句了?

這三種定義C 常量的方式孰優孰劣?

黃亮anthony 巨集和內聯函式先排除,因為它們雖然可以用做常量,但它們不是常量。用const沒有問題,但C 11之後,用contexpr才是更好的選擇。const變數都可以簡單的替換到constexpr,部分不能用const的地方也可以用constexpr。當然,當常量是數字型別時,用enum也...

C 高階程式設計 Windows程式設計和MFC,這三者學習的順序?

CODE楊 大可不必糾結看什麼書,如果你是乙個程式設計愛好者,痴迷於技術,當然MFC是個不錯的選擇,但大多時候還是看看公司的需求,公司需要你做什麼,你需要用什麼技術去實現 boy 我發現好多人都說不學windows不學mfc,其實越好用越高階的框架都是從底層封裝的,你底層摸不透,你能是乙個好的程式設...

如何理解 C 中 int i 的宣告方式?

我的偏好,當定義指標型別物件的時候,比如你的例子,我寫成int a,理由,為了統一,好記,int 是型別名,a是變數名.指標是復合型別,不同型別復合出的指標型別型別不同。 Shark 個人偏好把int 看做乙個整體,把i作為變數,實際上這也符合從右向左看的原則。至於int i的寫法,我認為可以理解為...