|
 |
《挑戰(zhàn)30天
C/C++ 入門極限系列教程》引言 |
作為一個長篇的C++入門教程,無論如何也應(yīng)該有這么個引言,可是文筆并不好的我,想了很久也不知道該如何寫……
仔細(xì)想想,與其把這篇短文當(dāng)作教程的引言,其實它更應(yīng)該是一篇引導(dǎo)初學(xué)者步入C++殿堂的策論。
幾年并不算很長的編程經(jīng)驗,使我感觸頗深,痛苦迷茫,以及成功后的喜悅一直交替著伴隨我,愛好編程的我,在學(xué)習(xí)期間也被很多很多學(xué)習(xí)的困難疑惑所阻擋,甚至不只一次的想放棄……>>>閱讀全文 |
·C/C++中指針學(xué)習(xí)的兩個絕好的例子 |
指針學(xué)習(xí)不好關(guān)鍵是概念不清造成的,說的簡單點(diǎn)就是書沒有認(rèn)真看,指針的學(xué)習(xí)猶如人在學(xué)習(xí)饒口令不多看多學(xué)多練是不行的,下面是兩個很經(jīng)典的例子,很多書上都有,對于學(xué)習(xí)的重點(diǎn)在于理解*x和x的理解,他們并不相同,*x所表示的其實就是變量a本身,x表示的是變量a在內(nèi)存中的地址,如果想明白可以輸出觀察cout<<*x"|"x;,當(dāng)定義了int
*x;后對x=&a的理解的問題。仔細(xì)閱讀和聯(lián)系下面的兩個例子我想指針問題就不是難點(diǎn)了……>>>閱讀全文 |
·C++中的const限定修飾符 |
const修飾符可以把對象轉(zhuǎn)變成常數(shù)對象,什么意思呢? 意思就是說利用const進(jìn)行修飾的變量的值在程序的任意位置將不能再被修改,就如同常數(shù)一樣使用……>>>閱讀全文 |
·C++下的引用類型 |
引用類型也稱別名,它是個很有趣的東西。在C++ 下你可以把它看作是另外的一種指針,通過引用類型我們同樣也可以間接的操作對象,引用類型主要是用在函數(shù)的形式參數(shù)上,通常我們使用它是把類對象傳遞給一個函數(shù)……>>>閱讀全文 |
·C++中布爾類型 |
布爾類型對象可以被賦予文字值true或者false,所對應(yīng)的關(guān)系就是真與假的概念。我們通常使用的方法是利用他來判斷條件的真與假……>>>閱讀全文 |
·關(guān)于C++中的內(nèi)聯(lián)函數(shù)(inline) |
在C++中,為了解決一些頻繁調(diào)用的小函數(shù)大量消耗棧空間或者是叫棧內(nèi)存的問題,特別的引入了inline修飾符,表示為內(nèi)聯(lián)函數(shù)?赡苷f到這里,很多人還不明白什么是?臻g,其實棧空間就是指放置程序的局部數(shù)據(jù)也就是函數(shù)內(nèi)數(shù)據(jù)的內(nèi)存空間,在系統(tǒng)下,?臻g是有限的,如果頻繁大量的使用就會造成因棧空間不足所造成的程序出錯的問題,函數(shù)的死循環(huán)遞歸調(diào)用的最終結(jié)果就是導(dǎo)致棧內(nèi)存空間枯竭……>>>閱讀全文 |
·C++中關(guān)于堆內(nèi)存(heap)的概念和操作方法 |
堆內(nèi)存是什么呢?我們知道在C/C++中定義的數(shù)組大小必需要事先定義好,他們通常是分配在靜態(tài)內(nèi)存空間或者是在棧內(nèi)存空間內(nèi)的,但是在實際工作中,我們有時候卻需要動態(tài)的為數(shù)組分配大小,在這里c庫中的malloc.h頭文件中的malloc()函數(shù)就為您解決了問題(bc或者是在老的標(biāo)準(zhǔn)中是alloc.h),它的函數(shù)原形是void*
malloc(size_t size),在動態(tài)開辟的內(nèi)存中,在使用完后我們要使用free()函數(shù)來釋放動態(tài)開辟的內(nèi)存空間……>>>閱讀全文 |
·C/C++中字符串常量的不相等性,以及字符串的copy |
在一個判斷兩個內(nèi)容為test的字符串常量是否相等的例子中,按照常理,應(yīng)該是相等的,這些在一些過程式語言中會得到相等的結(jié)論,但在C/C++卻不是這樣。為什么呢?答案在這里:因為字符串常量存儲在計算機(jī)內(nèi)存中,兩個字符串常量的地址均不相同,所以這樣的比較自然就不會得到我們所需要的結(jié)果,如果要進(jìn)行是否相等的比較應(yīng)該使用strcmp()這個涵數(shù)進(jìn)行比較……>>>閱讀全文 |
·C/C++中命令行參數(shù)的原理 |
很早以前的dos應(yīng)用程序中,我們經(jīng)常會用命令行參數(shù)執(zhí)行應(yīng)用程序例如: copy c:\1.txt
d:\ 。 在C/C++中,命令行參數(shù)的傳遞是利用main進(jìn)行形參傳遞實現(xiàn)的……>>>閱讀全文 |
·C/C++中的結(jié)構(gòu)體 |
什么是結(jié)構(gòu)體? 簡單的來說,結(jié)構(gòu)體就是一個可以包含不同數(shù)據(jù)類型的一個結(jié)構(gòu),它是一種可以自己定義的數(shù)據(jù)類型,它的特點(diǎn)和數(shù)組主要有兩點(diǎn)不同,首先結(jié)構(gòu)體可以在一個結(jié)構(gòu)中聲明不同的數(shù)據(jù)類型,第二相同結(jié)構(gòu)的結(jié)構(gòu)體變量是可以相互賦值的……>>>閱讀全文 |
·C++面向?qū)ο蟮木幊倘腴T篇-----類(class) |
上兩篇內(nèi)容我們著重說了結(jié)構(gòu)體相關(guān)知識的操作。以后的內(nèi)容我們將逐步完全以C++作為主體了,這也意味著我們的教程正式進(jìn)入面向?qū)ο蟮木幊塘。前面的教程我已?jīng)再三說明,結(jié)構(gòu)體的掌握非常重要,重要在哪里呢?重要在結(jié)構(gòu)體和類有相同的特性,但又有很大的區(qū)別,類是構(gòu)成面向?qū)ο缶幊痰幕A(chǔ),但它是和結(jié)構(gòu)體有著極其密切的關(guān)系……>>>閱讀全文 |
·理解C++面向?qū)ο蟪绦蛟O(shè)計中的抽象理論 |
很多書在一開始就開始學(xué)習(xí)josephus問題,為了讓大家前面學(xué)起來較為容易我把前面涉及到此問題的地方都故意去掉了,現(xiàn)在我們已經(jīng)學(xué)習(xí)過了結(jié)構(gòu)體和類,所以放在這里學(xué)習(xí)可能更合適一些……>>>閱讀全文 |
·C++友元的入門教程 |
友元能夠使得普通函數(shù)直接訪問類的保護(hù)數(shù)據(jù),避免了類成員函數(shù)的頻繁調(diào)用,可以節(jié)約處理器開銷,提高程序的效率,但矛盾的是,即使是最大限度的保護(hù),同樣也破壞了類的封裝特性,這即是友元的缺點(diǎn),在現(xiàn)在cpu速度越來越快的今天我們并不推薦使用它,但它作為C++一個必要的知識點(diǎn),一個完整的組成部分,我們還是需要討論一下的……>>>閱讀全文 |
·C++中類的繼承特性 |
整個C++程序設(shè)計全面圍繞面向?qū)ο蟮姆绞竭M(jìn)行,類的繼承特性是C++的一個非常非常重要的機(jī)制,繼承特性可以使一個新類獲得其父類的操作和數(shù)據(jù)結(jié)構(gòu),程序員只需在新類中增加原有類中沒有的成分?梢哉f這一章節(jié)的內(nèi)容是C++面向?qū)ο蟪绦蛟O(shè)計的關(guān)鍵……>>>閱讀全文 |
·C++類的多態(tài)與虛函數(shù)的使用 |
類的多態(tài)特性是支持面向?qū)ο蟮恼Z言最主要的特性,有過非面向?qū)ο笳Z言開發(fā)經(jīng)歷的人,通常對這一章節(jié)的內(nèi)容會覺得不習(xí)慣,因為很多人錯誤的認(rèn)為,支持類的封裝的語言就是支持面向?qū)ο蟮,其實不然,Visual
BASIC 6.0 是典型的非面向?qū)ο蟮拈_發(fā)語言,但是它的確是支持類,支持類并不能說明就是支持面向?qū)ο螅軌蚪鉀Q多態(tài)問題的語言,才是真正支持面向?qū)ο蟮拈_發(fā)的語言,所以務(wù)必提醒有過其它非面向?qū)ο笳Z言基礎(chǔ)的讀者注意……>>>閱讀全文 |
·類的分解,抽象類與純虛函數(shù)的需要性 |
為了不模糊概念在這里我們就簡單的闡述一下類的分解,前面的教程我們著重講述了類的繼承,繼承的特點(diǎn)就是,派生類繼承基類的特性,進(jìn)行結(jié)構(gòu)擴(kuò)張,這種逐步擴(kuò)張,逐步在各派生類中分解彼此不同特性的過程其實就是類的分解……>>>閱讀全文 |
·C++類的多重繼承與虛擬繼承 |
在過去的學(xué)習(xí)中,我們始終接觸的單個類的繼承,但是在現(xiàn)實生活中,一些新事物往往會擁有兩個或者兩個以上事物的屬性,為了解決這個問題,C++引入了多重繼承的概念,C++允許為一個派生類指定多個基類,這樣的繼承結(jié)構(gòu)被稱做多重繼承……>>>閱讀全文 |
·C++中利用構(gòu)造函數(shù)與無名對象簡化運(yùn)算符重載函數(shù) |
類的構(gòu)造函數(shù)起了顯式或者隱式轉(zhuǎn)換的作用,轉(zhuǎn)換過程實質(zhì)是產(chǎn)生一個類的無名對象,類的運(yùn)算符重載函數(shù)的參數(shù)就是這個無名對象的引用,所以參數(shù)的順序也不再是問題,代碼的運(yùn)行效率也得到提高,無需再定義只是參數(shù)順序不同,內(nèi)容重復(fù)的運(yùn)算符重載函數(shù)了……>>>閱讀全文 |
·C++運(yùn)算符重載轉(zhuǎn)換運(yùn)算符 |
為什么需要轉(zhuǎn)換運(yùn)算符? 大家知道對于內(nèi)置類型的數(shù)據(jù)我們可以通過強(qiáng)制轉(zhuǎn)換符的使用來轉(zhuǎn)換數(shù)據(jù),例如(int)2.1f;自定義類也是類型,那么自定義類的對象在很多情況下也需要支持此操作,C++提供了轉(zhuǎn)換運(yùn)算符重載函數(shù),它使得自定義類對象的強(qiáng)轉(zhuǎn)換成為可能……>>>閱讀全文 |
·C++運(yùn)算符重載賦值運(yùn)算符 |
自定義類的賦值運(yùn)算符重載函數(shù)的作用與內(nèi)置賦值運(yùn)算符的作用類似,但是要要注意的是,它與拷貝構(gòu)造函數(shù)與析構(gòu)函數(shù)一樣,要注意深拷貝淺拷貝的問題,在沒有深拷貝淺拷貝的情況下,如果沒有指定默認(rèn)的賦值運(yùn)算符重載函數(shù),那么系統(tǒng)將會自動提供一個賦值運(yùn)算符重載函數(shù)……>>>閱讀全文 |
|
|