初學者對C++的切身感覺

  上週和一同窗聊起了當前一些比較流行且運用廣範的編程語言,蘋果的IOS比起其它語言
來講更加言簡意賅,簡單明瞭,而且他如今也打算一直弄IOS。我以前一直是用C語言和
GNU ARM彙編語言,由於這兩種語言在開發系統級程序和硬件驅動上比起其它語言來說更
加清晰明瞭,沒有像其它的高級語言包裝過分,同時時間複雜度以及總體的運行速度也
相對更佳,可是在系統上層應用軟件開發上就顯得比像C++更加繁瑣,編程速度也降低了
很多。考慮到以後還得用QT(在嵌入式GUI表現的出色),且QT也是基於C++所編寫的一
個完整的庫,所以下定決心開始學C++。
     C++有不少地方和C相同,能夠說基本上繼承了C的全部東西,除了這些,C++還
增長了不少新特性,如函數重載,類(class),容器,迭代器,標準庫裏還提供了100
來個範形算法給用戶進行範形編程,下面我就以初學者的視角來逐一表達個人我的見解
吧。
對於函數重載,它是一組擁有相同的函數名但形參不一樣(或返回值不一樣)的函
數,用戶編程時可使用這組函數中一任意一個,編譯器經過審視形參從而決定對這組
函數中的哪個進行編譯(雖然C++比C語言多了函數重載,其它只是C++的編譯器比C編
譯器多了這一項功能而已,但最終編譯出來的只是對應的那組函數其中的一個,只是方
便了用戶編程,還未發現其它用處),其實編程語言的不一樣在根本上是編譯器不一樣,編
程語言是由其編譯器來決定的,若是一個新的編譯器作得好且讓大量的程序猿接受,那
麼也就意味着一門新的編程語言即將面世。
類(class)可謂是C++相比於C來講最值得一提的,正是有了它,使得用C++來
編寫大型程序在時間上的花費大大下降,在編寫的代碼量也相對C降低了很多,它能夠像
LINUX的子進程繼承父進程同樣讓對象繼續類的一些特性和操做。class讓用戶本身來定
義本身的類型,讓咱們使用起來和使用標準類型同樣方便,此外咱們能夠把定義的類進
行封裝,讓接口公有化(public),成員函數等具體操做進行私有化(private),這樣就
可讓類外函數只有訪問public數據成員。但C++也考慮到了讓類外函數訪問類內的私有
數據成員,所以也爲用戶加上的友元函數。在類中定義對對象的具體操做讓咱們在操做
類對象時提供了大大的方便。
容器,咱們經過名字也能知道它就是一個能容納數據的一個器皿,就像C語言裏
的數組,隊列,棧,鏈表等同樣,它分爲順序容器,關聯容器,容器適配器,順序容器
除了C語言裏面的數組,還有vector,list,string,deque。其實這些咱們在C中都能實
現,不過C++已經幫咱們作好了全部的工做,咱們只要拿來用就好了。
迭代器,這東西聽名字讓我第一感受就是一個高端的新東西(至少我未從中能
顧名思義,也許是小學語言不行的緣由吧,哈哈),拿着書看了以後才發現它並非什
麼高大上的新東西,之前經常用到的指針就是一個迭代器,其實它是一個用來操做一組
數據結構時的一個指示器,有沒有想有數組當中的那個下標,對,就是那種做用,經過
它能夠方便的操做咱們的數據。
範形算法它也很大程度上簡化了咱們的編程,算法就是實現的具體方法,C++中
爲咱們提供了100個左右的算法,好比排序,查找元素,刪除元素等,免除了咱們手動一
個個的編寫相應的函數。
從開始學C++也才6天,以上有錯誤之處還請幫忙指正,C++和C同樣,博大精深
,C++在圖形界面上的支持更讓應用軟件的編寫獲得了大力支持。要想學好C++很是不容
易,C++的庫很大,你要想用好這門語言你固然得對標準庫有必定程度的瞭解了,要想寫
出好的代碼的話,在數據結構方面以及內存使用上確定也得有至關深厚的功底才行,好
好學吧!算法

相關文章
相關標籤/搜索