C++ 編程心得

一直以來都是在鉆研C語言,覺得C語言比C++語言要簡單的多,而且,C語言能夠更容易理解。最近,在使用C++語言來實現(xiàn)某些算法,發(fā)現(xiàn)C++語言在使用方面要比C語言優(yōu)秀的多,不是因為C++屏蔽了指針的使用,而是C++語言一直在進步(這點是我最看重的)。到現(xiàn)在也有了auto關鍵字,智能指針庫,線程庫等等,總之,你會發(fā)現(xiàn)C++基本上在基礎算法和數(shù)據(jù)結構方面給你提供了最大限度的幫助(當然,這部分的內(nèi)容是要學習的)。C++在應用框架方面缺失的比較嚴重,比如,網(wǎng)絡編程方面的庫,文件解析的庫等等,C++都沒有提供(針對這個現(xiàn)象,我個人的理解是,C++這門語言應該更注重對算法的考量,這是這門語言的優(yōu)勢,對于其他外圍的框架,我個人的方法是使用PYTHON作為我的第二門語言,這門語言最大的特點是提供了大量的第三方的庫)。

1. 為什么函數(shù)參數(shù)的傳遞方式使用&引用的方式?
:首先,我們要明白一點,并不是所有類型的參數(shù)都是使用引用的形式,因為引用形式尤其本身的特性,另外,C++并不排斥使用指針型的參數(shù)。
基礎數(shù)據(jù)了類型(int,char等)C++不推薦使用引用型參數(shù),當然,如果你想獲得返回值,我們還是可以使用引用型參數(shù)。
如果您僅僅是想使用函數(shù)參數(shù)的值,而不是修改他的內(nèi)容,我們推薦使用const &的形式,因為這種形式我們可以使用臨時對象作為函數(shù)參數(shù)的值,如果是單純的&引用形式,我們必須定義一個對象,然后用這個對象進行參數(shù)傳值(這個特點我花了將近5年的時間才弄明白,不知道是不是自己太蠢了,還是自己太不仔細了)。
最后,因為STL11已經(jīng)提供了智能指針,所以對于指針的方式,我漸漸的淡化了,不過,指針的操作我還是有了解的。智能指針的使用可以參考Huffman編碼一文。

最后編輯于
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內(nèi)容