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