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