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