您好,登錄后才能下訂單哦!
C/C++/Linux學習路線同時進入另一個板塊,C++路線,這里先從C過度到C++。ok廢話不多說。開始進入C++,首先讓我們來看C和C++的不同:
1、首先來說。源文件的后綴名不一樣,一個是.c一個是.c++。有人就會說了,我過去寫C語言程序的時候都是.cpp的源文件,ok這樣寫呢,沒有沒有錯,但是你寫的不是純c語言程序,由于C++是全面兼容c的所以你才可以這樣寫,但是這兩者是不一樣的。
2、再就是引入的頭文件不同。在c語言中我們經常會看到這個頭文件#include<stdio.h>對吧?這個是至少包含的,標準輸入輸出文件,在c++中用的是#include<iostrem.h>或者#include<iostrem>現在應該見的大多數是不帶.h。帶.h是比較早的版本,建議大家用不帶.h的版本。
3、引入的標準輸入輸出文件不同,那么標準輸入輸入的方式也就不一樣,在c語言中我們常用scanf和printf 而在c++中我們用cin和cout,這兩者主要一個區別就是cin和cout方便啊,scanf和printf輸入輸出都需要格式化輸入輸出,好麻煩,但是cin和cout就不用直接輸入。
4、C++支持命名空間,什么意思呢?按照我的理解就是在開發大型程序時,會不同人開發的程序,開發同一個功能模塊時,就會出現相同函數名,當引入了命名空間后就會解決這個問題。至于為什么可以,這里先不解釋,后邊用一個專題專門總結。
5、c語言需要把所有變量定義放在函數開頭,而c++中允許邊定義邊使用。有人也會說,不啊,我寫的程序就可以。No,我覺得你寫的應該不是純c語言程序,不信你用IDE分別建立一個純c語言源文件和一個cpp源文件,測試以下程序:
#include<stdio.h> void main(void) { int a = 10; int b = 20; printf("a = %d,b = %d\n",a,b); int c; c = 30; printf("c = %d\n",c); }
同一段代碼,你放在純c語言程序下,編譯都不能通過,會提示c未定義標識符,就是相同的程序,直接放在c++文件就可以執行。
6、c++支持函數重載,重載是什么意思呢?
函數重載:
就是說函數的名字一樣,但是函數的參數不一樣,可以是參數的個數,參數的數據類型,形參順序
函數重載的要求:
a、函數的形參個數 b、函數的形參順序 c、函數的形參數據類型 至少有一個不同
注意:
a、如果兩個函數只是函數的返回值不一樣,其他都一樣,這樣是構不成函數的重載的,在編譯時會報錯。
b、功能一樣時,只是參數不同時,可以采用相同的方法名,系統會根據函數的參數自動識別。
前邊不是提到了命名空間啊,為什么又要用這個呢?我個人覺得,命名空間是解決不同人開發的的程序的函數名相同的,而函數重載是解決同一個人寫的程序函數名相同的,當然這句話只是片面的理解,但是作為入門我覺得就可以這樣理解,當弄明白了命名空間的作用和函數重載的作用,兩者的區別自然而然就出來了。
7、c語言不允許空的結構體c++允許,而c++允許,這個可以自己下去測試(注意前提你建立的是一個純c的源文件)
8、c++采用class自定義類型定義結構,而c語言用struct,這兩者在c++中都是基本一樣的,主要區別就是:
(一)默認繼承權限。如果不明確指定,來自class的繼承按照private繼承處理,來自struct的繼承按照public繼承處理;
(二)成員的默認訪問權限。class的成員默認是private權限,struct默認是public權限。
最重要的區別是
9、最主要的區別,這兩者還是不同的語言,c是面向過程的,而c++是面向對象的,盡管說c++是兼容c的,但是這兩者是有本質性的區別的。
ok以上就是我總結的一些入門時關于c++與c的不同,接下來就進入c++的學習。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。