Time of Update: 2017-02-27
1、const 引用是指向 const 對象的引用:const int ival = 1024;const int &refVal = ival; // ok: both reference and object are constint &ref2 = ival; // error: non const reference to a const object可以讀取但不能修改 refVal。同理,用 ival 初始化 ref2 也是不合法的。ref2 是普通的非 const
Time of Update: 2017-02-27
我們知道,C#的文法與C++非常相似,實現從C++向C#的轉變,其困難不在於語言本身,而在於熟悉.NET的可管理環境和對.NET架構的理解。儘管C#與C++在文法上的變化是很小的,幾乎不會對我們有什麼影響,但有些變化卻足以使一些粗心的C++編程人員時刻銘記在心。在本篇文章中我們將討論C++編程人員最容易犯的十個錯誤。陷阱1:
Time of Update: 2017-02-27
在准標準C++中,有關預設變數值的限制非常模糊。基於此,很多編譯器允許開發人員將預設變數值包含在函式宣告,指向函數的指標和引用,成員函數的指標,以及typedef聲明中。請看一下以下的程式:struct A{void func(int x=5){}};void g(int n=12){}// 根據C++標準,不能在以下聲明中使用預設變數值。void (*pf)(inti=120);void (A::*pmf)(int j=50);typedef void (*PF)(inti=100);//
Time of Update: 2017-02-27
一般的連鎖賦值方式:int x, y, z;x = y = z = 15;//等價於x = (y = (z = 15));當我們要實現自己的operator=操作時,就需要返回一個引用,該引用指向了操作符左 側的參數;1 class Widget2 {3 public:45 Widget& operator=(const Widget& rhs)6 {78 return *this;//返回*this9 }10
Time of Update: 2017-02-27
再論類型 在討論裝箱(boxing)之前,有必要弄清楚為什麼實值型別與參考型別之間會有所區別。 一個含有數值的實值型別的執行個體,和一個指向對象的參考型別的執行個體,它們有什麼區別呢?除了儲存物件所需的記憶體之外,每一個對象都會有一個對象頭,目的是為物件導向的編程提供基本的服務,如存在虛方法的類,嵌入其中的中繼資料等等。由虛方法和介面間接結合的對象頭,其記憶體開銷通常會很大,哪怕你所需要的只是一個靜態類型的數值,也會帶來一些編譯器的強制操作。有趣的是,在某些情況下,編譯器能最佳化掉一些對象開
Time of Update: 2017-02-27
·Borland C++Builder 5.0教程(1)·Borland C++Builder 5.0教程(2)·Borland C++Builder 5.0教程(3)·Borland C++Builder 5.0教程(4)·Borland C++Builder 5.0教程(5)·Borland C++Builder 5.0教程(6)·Borland C++Builder
Time of Update: 2017-02-27
關於《深度探索C++物件模型》停頓了半個月,今天繼續啃這個骨頭,我的學習進入了第四章,函數的語意學。先做個複習C++支援三種成員函數:靜態、虛、和非靜態。每一種函數的調用方式都不同,當然他們的作用也會有區別,一般來說我們只要掌握根據我們的需要正確的使用這三種類型的成員函數便可以了,至於內部是如何運做的我們可以不知。但是《深度探索C++物件模型》正是讓我們對這些不知道的東西進行深度探索的一本書。通過前面的學習,我想我知道了一些以前不知道的東西,但是感覺並沒有提高多少,也許是我對此書的學習還停留在一
Time of Update: 2017-02-27
上一篇我們對合成確省的建構函式做了一個瞭解,這一篇我們繼續看看建構函式這個有趣的東西. Copy Constructor是什麼?我們經常看到代碼中有一些這樣的函數調用方式X(X&) (“X of X ref”). 這個函數用使用者自訂類型作為參數,那它的參數的構造便是由Copy Constructor負責的. 可見這個玩意非常重要,實際上Copy Constructor是由編譯器自動合成的,不需要你去作任何事情,但編譯器都做了些什麼呢?我們的問題出來了。
Time of Update: 2017-02-27
雷神跌跌撞撞的讀完了《深度探索C++物件模型》的第一章,雖然還是有些疑惑,但是已經感到收穫很大。按照朋友的說法,第一章是一個概括的介紹,具體的細節會在以後的章節闡述,如果沒有通讀本書,第一章還是比較不容易理解的。雷神聽過之後信心倍增,也不在有初看此書時的“世界末日”的感覺了(在第2篇雷神感到學了近一年的C++,居然水平如此之差),並且通過自己的努力,還是摸到了些門道,所以讓我們繼續快樂的出發,踏上深度探索C++物件模型的旅程。記住我們在第一篇的小文《堅持不懈,直到成功》,
Time of Update: 2017-02-27
介紹 多態是一種威力強大的設計機制,允許你繼承一個抽象的public介面之後,封裝相關的類型,需要付出的代價就是額外的間接性--不論是在記憶體的獲得,或是在類的決斷上,C++通過class的pointer和references來支援多態,這種程式風格就稱為"物件導向". 大家好,雷神關於《深度探索C++物件模型》筆記終於又和大家見面了,速度慢的真是可以。好了不浪費時間了,直接進入主題。 這篇筆記主要解決了幾個常常被人問到的問題。 1、C++支援多重繼承嗎?
Time of Update: 2017-02-27
史列因:我剛看了你寫的“深度探索C++物件模型(1)”,感覺很不錯。不過我有一個建議:你說“誰知第一章便如此的難以消化,已經反覆讀了3遍,還是有些夾生”是很自然的。第一章是一個總覽,如果你能全看懂,後面的就沒什麼看的必要了。第一章的內容後面都有詳細介紹,開始只要有個大概印象就可以了。這本書中很多內容都是前後重複的。我建議你先不管看懂看不懂,只管向後看,之後再從頭看幾遍,那樣效果好得多。 我想史列因說的應該是一種非常好的閱讀方式,類似《深度探索C++
Time of Update: 2017-02-27
goto語句可以將程式轉入前面用標號和冒號聲明的標號處。 下列代碼示範了這個語句: bool done = false; startPoint: // do some stuff if (!done) goto(startPoint);// loop over, moving on... 這裡不需要大括弧,因為goto語句與標號之間的所有代碼均會執行。
Time of Update: 2017-02-27
2.3 函數的遞迴調用Turbo C2.0允許函數自己調用自己,即函數的遞迴調用,遞迴調用可以使程式簡潔、代碼緊湊,但要犧牲記憶體空間作處理時的堆棧。如要求一個n!(n的階乘)的值可用下面遞迴調用:例8: #include<stdio.h> unsigned ling mul(int n); int main() { int m; puts("Calculate n! n=?\n"); scanf("%d",
Time of Update: 2017-02-27
三、用全程變數實現參數互傳以上兩種辦法可以在調用函數和被調用函數間傳遞參數,但使用不太方便。如果將所要傳遞的參數定義為全程變數,可使變數在整個程式中對所有函數都可見。這樣相當於在調用函數和被調用函數之間實現了參數的傳遞和返回。這也是實際中經常使用的方法,但定義全程變數勢必長久地佔用了記憶體。因此,全程變數的數目受到限制,特別對於較大的數組更是如此。當然對於絕大多數程式記憶體都是夠用的。例6: #incluide<stdio.h> void disp(void); int m[10];
Time of Update: 2017-02-27
2 函數的調用2.1 函數的簡單調用 Turbo C2.0調用函數時直接使用函數名和實參的方法,也就是將要賦給被調用函數的參量,按該函數說明的參數形式傳遞過去,然後進入子函數運行,運行結束後再按子函數規定的資料類型返回一個值給調用函數。使用Turbo C2.0的庫函數就是函數簡單調用的方法。舉例說明如下:例1: #include<stdio.h> int maxmum(int x, int y, int z); /*說明一個使用者自訂函數*/ int main()
Time of Update: 2017-02-27
C程式是由一組或是變數或是函數的外部對象組成的。函數是一個自我包含的完成一定相關功能的執行程式碼片段。我們可以把函數看成一個"黑盒子",你只要將資料送進去就能得到結果,而函數內部究竟是如何工作的的,外部程式是不知道的。外部程式所知道的僅限於輸入給函數什麼以及函數輸出什麼。函數提供了編製程式的手段,使之容易讀、寫、理解、排除錯誤、修改和維護。
Time of Update: 2017-02-27
本文介紹了在Win 98環境下,如何利用C++ Builder和Windows的Api函數建立滿足使用者特定需求的Combo框,並且通過Api函數擴充了C++ Builer標準組件的功能。在C++ Builder
Time of Update: 2017-02-27
1. 問題描述疏鬆陣列是指那些多數元素為零的矩陣。利用“稀疏”特 點進行儲存和計算可以大大節省儲存空間,提高計算效率。實現一個能進行疏鬆陣列乘法運 算的運算器。以“帶行邏輯連結資訊”的三元組順序表表示疏鬆陣列,實現兩個 矩陣相乘的運算。疏鬆陣列採用十字鏈表表示,而運算結果的矩陣則以通常的陣列形式列出2 設計2.1 用十字鏈表格儲存體疏鬆陣列為了能有效儲存疏鬆陣列的元素 , 本文採用十字鏈表對資料進行儲存, 所設計的十字鏈表C++語言描述如
Time of Update: 2017-02-27
一.
Time of Update: 2017-02-27
C++Builder是Borland公司繼Delphi之後又一成功的產品,她集VB、VC++ 及 Delphi 的優點於一體而深得C語言愛好者的青睞。由於多數操作者愛用 MicroSoft公司的Excel組織資料,為此本文介紹了用C++Builder存取Excel 檔案的兩種方法。一.用OLE技術操縱ExcelOLE(對象連結與嵌入)是微軟提出的標準,是應用程式間交換資料、相互操作的一種方式,MS OFFICE 提供了很強的 OLE 服務功能,VB、Delphi