溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

C++入門

發(fā)布時間:2020-07-15 15:54:11 來源:網(wǎng)絡(luò) 閱讀:533 作者:捕風(fēng)的xiao_k 欄目:編程語言


    C/C++/Linux學(xué)習(xí)路線同時進入另一個板塊,C++路線,這里先從C過度到C++。ok廢話不多說。開始進入C++,首先讓我們來看C和C++的不同:


    1、首先來說。源文件的后綴名不一樣,一個是.c一個是.c++。有人就會說了,我過去寫C語言程序的時候都是.cpp的源文件,ok這樣寫呢,沒有沒有錯,但是你寫的不是純c語言程序,由于C++是全面兼容c的所以你才可以這樣寫,但是這兩者是不一樣的。

    2、再就是引入的頭文件不同。在c語言中我們經(jīng)常會看到這個頭文件#include<stdio.h>對吧?這個是至少包含的,標準輸入輸出文件,在c++中用的是#include<iostrem.h>或者#include<iostrem>現(xiàn)在應(yīng)該見的大多數(shù)是不帶.h。帶.h是比較早的版本,建議大家用不帶.h的版本。

    3、引入的標準輸入輸出文件不同,那么標準輸入輸入的方式也就不一樣,在c語言中我們常用scanf和printf 而在c++中我們用cin和cout,這兩者主要一個區(qū)別就是cin和cout方便啊,scanf和printf輸入輸出都需要格式化輸入輸出,好麻煩,但是cin和cout就不用直接輸入。

    4、C++支持命名空間,什么意思呢?按照我的理解就是在開發(fā)大型程序時,會不同人開發(fā)的程序,開發(fā)同一個功能模塊時,就會出現(xiàn)相同函數(shù)名,當引入了命名空間后就會解決這個問題。至于為什么可以,這里先不解釋,后邊用一個專題專門總結(jié)。

    5、c語言需要把所有變量定義放在函數(shù)開頭,而c++中允許邊定義邊使用。有人也會說,不啊,我寫的程序就可以。No,我覺得你寫的應(yīng)該不是純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++文件就可以執(zhí)行。

    6、c++支持函數(shù)重載,重載是什么意思呢?

      函數(shù)重載:

          就是說函數(shù)的名字一樣,但是函數(shù)的參數(shù)不一樣,可以是參數(shù)的個數(shù),參數(shù)的數(shù)據(jù)類型,形參順序

     函數(shù)重載的要求:

            a、函數(shù)的形參個數(shù) b、函數(shù)的形參順序 c、函數(shù)的形參數(shù)據(jù)類型 至少有一個不同

注意:

    a、如果兩個函數(shù)只是函數(shù)的返回值不一樣,其他都一樣,這樣是構(gòu)不成函數(shù)的重載的,在編譯時會報錯。

    b、功能一樣時,只是參數(shù)不同時,可以采用相同的方法名,系統(tǒng)會根據(jù)函數(shù)的參數(shù)自動識別。

前邊不是提到了命名空間啊,為什么又要用這個呢?我個人覺得,命名空間是解決不同人開發(fā)的的程序的函數(shù)名相同的,而函數(shù)重載是解決同一個人寫的程序函數(shù)名相同的,當然這句話只是片面的理解,但是作為入門我覺得就可以這樣理解,當弄明白了命名空間的作用和函數(shù)重載的作用,兩者的區(qū)別自然而然就出來了。

    7、c語言不允許空的結(jié)構(gòu)體c++允許,而c++允許,這個可以自己下去測試(注意前提你建立的是一個純c的源文件)    

    8、c++采用class自定義類型定義結(jié)構(gòu),而c語言用struct,這兩者在c++中都是基本一樣的,主要區(qū)別就是:

    (一)默認繼承權(quán)限。如果不明確指定,來自class的繼承按照private繼承處理,來自struct的繼承按照public繼承處理;

  (二)成員的默認訪問權(quán)限。class的成員默認是private權(quán)限,struct默認是public權(quán)限。

最重要的區(qū)別是

    9、最主要的區(qū)別,這兩者還是不同的語言,c是面向過程的,而c++是面向?qū)ο蟮?,盡管說c++是兼容c的,但是這兩者是有本質(zhì)性的區(qū)別的。



    ok以上就是我總結(jié)的一些入門時關(guān)于c++與c的不同,接下來就進入c++的學(xué)習(xí)。

向AI問一下細節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI