📚 知識家圖書館 奇摩知識+ 紀念館

c語言和c++到底有什麼差別??

發問者 Sharon (Lv.1) ・2007 年 8 月 2 日 ・程式設計

我學了一年的c++ 但是看到很多人發問的問題 我都看不懂= = 明明一些問c++的 我根本連他們的程式都看不懂 請問一下c和c++到底是差在哪?? 要怎麼學好程式啊??

4 則回答

最佳解答
●「物件」是個很重要的差別。 舉例來說,用C寫時鐘,秒針、分針、時針的旋轉要各寫一個函式。 但是基本上,這三隻針的程式碼大同小異,只是行走的角度不同,不需要浪費程式碼。 所以,把針「物件化」的想法就是:將共通的特性「旋轉角度」抽離(抽象、萃取)出來,再賦予在一個類別上(例如「針類別」)。 「針類別」可以用來宣告出變數「秒針」、「分針」、「時針」,並且在宣告完之後,直接擁有「旋轉角度」的特性。 (如果你願意,也可以將長度、顏色...當成「針類別」的特性,宣告出來的變數,自然而然就擁有了這些特性) 「類別」的設計如果夠抽象、夠精萃,甚至可以拿來宣告繡花針、注射針... ●再舉一個例子:「圓類別」萃取特性是「半徑」,可以用在圖形的圓、輪子的圓、方向盤的圓...等等。 ●這樣,物件就是一個生一個,不浪費程式碼,簡潔又趨向現實。 ●這種「重複利用」的觀念,還包含了運算子的重複利用。 例如+這個符號,除了一般的數字相加,你可以幫它設計、重複利用到「文字+文字」、「形狀+形狀(如果你有設計「形狀類別」)」、「狗+貓(如果你有設計「動物類別」)」、「針加針」... ●建立物件的觀念,目的是方便自己寫程式,物件設計得好,甚至可以方便別人延伸程式;但是一般基礎的題目,還是沿用不需要物件觀念的題目,所以只好把 printf 改成 cout,scanf 改成 cin,趕流行囉。 ●順帶一提:「<<」可以輸出那麼多種類的變數,而且還可以接一大串,主要原因就是因為設計「<<」的時候,被各種類的變數「重複利用」了。如果需要,它也開放給剛剛的「針類別」、「圓類別」納入設計,重複利用。 ●C++是「接受物件寫法的C」,如果程式沒有物件觀念,或是不需要物件寫法,不管外觀變了多少,寫出來其實還是C。 ●Dev-C++、VisualC++、BuilderC++ 是編譯器,操作介面各家不一樣;但是 C++ 是一種程式語言,全世界都一樣。
?(Lv.5) 2007 年 8 月 2 日
物件導向只是一種概念. 與程式語言沒多大的關係. 既時用C 也可以表現此概念只是比較麻煩. C++ 提供對應的語法讓你表示物件. 但不表示你用C++ 寫程式就很物件導向化. 另知識+ 問的C++問題. 很少跟物件程式設計有關. 覺大部份都是結構化程式設計.
?(Lv.5) 2007 年 8 月 2 日
大致上是一樣的 只是C++最重要的是物件導向的觀念 你會看不懂很多人發問的問題 很多都是發問人C/C++混用 像C++不用printf用cout 標頭檔的函式庫*.h都是C語言 C++都改成把.h去掉前面加個c 例如math.h改成cmath, string.h改成cstring C語言的東西在C++都可以使用 不過不建議這樣混用就是了 也有很多人用void main() 這樣雖然可以省去傳回值 不過並不建議這種寫法 最符合標準的是用int main() 後面補個return 0; 應該大部分都用devC++吧 (免費的) C++程式碼寫的嚴謹正確應該在哪編譯都一樣
zonyen(Lv.3) 2007 年 8 月 2 日
C和C++差別在C++有物件導向的功能,而C沒有! dev c++跟其他的不同,只是在於編譯的工作環境!基本上語法都是一樣的 學好程式的不二法門就是多看、多寫程式!
Ivan(Lv.2) 2007 年 8 月 2 日

電腦與網際網路的其他問題