原创 C++中虛析構函數的作用(1)(轉)

★★什麼時候要用虛析構函數★★ 通過基類的指針來刪除派生類的對象時,基類的析構函數應該是虛的。否則其刪除效果將無法實現。 一般情況下,這樣的刪除只能夠刪除基類對象,而不能刪除子類對象,形成了刪除一半形象,從而千萬內存泄漏。 原因: 在公有

原创 操作符重載手冊(轉)

(源文章地址:http://www.adintr.com/program/article/05.oper.html) 一、重載規則 I.可以重載的操作符 + - * / % ^ & | ~ ! = > < += -= *= /= %=

原创 C++:關鍵字const (轉)

常對象,常數據成員,常成員函數,指向對象的常指針,指向常對象的指針,對象的常引用。 author: ZJ 07-12-11 Blog: http://zhangjunhd.blog.51cto.com/ 如果需要保證數據不被修改,則可以使

原创 增量和減量

    增量和減量操作符表示爲:++和--。  增量操作表示加1,減量操作表示減1。例如:   a++; //相當於a=a+1;   ++a; //相當於a=a+1;   a--; //相當於a=a-1;   --a; //相當於a=a-

原创 表達式求值與副作用&左值

  C++爲每個運算符規定了一個優先級和結合性,以控制各運算的順序, 確保表達式計算的一致性。利用括號可以改變表達式的運算順序。  左值是能出現在賦值表達式左邊的表達式。  如果運算結果超過了該數據類型能夠表達的範圍,則C++進行截斷處

原创 頑固程序卸載機制和方法

——附:趨勢防毒程序的卸載 寫在前面 殺毒軟件相比普通的軟件,卸載起來比較麻煩。按理說用軟件自帶的卸載工具,或者用系統自帶的添加/刪除程序,即可卸載。 但是某些殺毒軟件帶有各種保護機制,如卸載密碼;某些殺毒軟件需要通過服務檯卸載

原创 函數調用機制

 棧是一種數據結構,它的工作原理就像在子彈匣中壓子彈一樣,最先壓人的子彈要等到最後才飛射出去,而最後壓人的子彈則首先飛射出去。  C++的函數調用過程, 需要調用初始化和善後處理的環節。函數調用的整個過程就是棧空間操作的過程。函數調用時,

原创 虛函數、純虛函數

一、定義. 純虛函數是在基類中聲明的虛函數,它在基類中沒有定義,但要求任何派生類都要定義自己的實現方法。在基類中實現純虛函數的方法是在函數原型後加“=0” virtual void funtion1()=0 二、引入原因: 1、爲了方便使

原创 談C/C++指針精髓(2)[轉帖]

1.3指針與內存管理       利用指針你可以將數據寫入內存中的任意位置,但是,一旦你的程序中有一個野指針("wild”pointer),即指向一個錯誤位置的指針,你的數據就危險了—存放在堆中的數據可能會被破壞,用來管理堆的數據結構也可

原创 談C/C++指針精髓(3)[轉帖]

1.4指針的運算   1.4.1賦值運算 指針變量的賦值運算有以下幾種形式: 1.4.1.1指針變量初始化賦值如下: int a; int *ip=&a; 1.4.1.2把一個變量的地址賦予指向相同數據類型的指針變量。例如: int

原创 C++中的虛函數(轉)

虛函數聯繫到多態,多態聯繫到繼承。所以本文中都是在繼承層次上做文章。沒了繼承,什麼都沒得談。 下面是小弟對C++的虛函數這玩意兒的理解。 一,  什麼是虛函數(如果不知道虛函數爲何物,但有急切的想知道,那你就應該從這裏開始) 簡單地說,

原创 逗號表達式

             逗號表達式的語法爲:   表達式1,表達式2,...表達式n  C++順序計算表達式1,表達式2,……,表達式n的值。例如:    int a,b,c;     a=l,b=a+2, c=b+3;  由於按順序求

原创 C/C++:函數參數傳遞方式(轉)

傳遞變量名,傳遞指針,傳遞引用。 author: ZJ 07-12-5 Blog: http://zhangjunhd.blog.51cto.com/ 下面介紹3種函數參數傳遞方式。 1.將變量名作爲形參和實參 在這種情況下傳給形參的是變

原创 函數聲明與函數定義的參數

觀點:1、函數聲明不需指定參數的名稱,只需要每個參數的類型, 而在函數定義時則必須要寫出參數名稱 。(C++ primer第3版第281頁)     如: int abs( int );             int min( int,

原创 指向指針的指針(整理)

一個指針變量可以指向整型變量、實型變量、字符類型變量,當然也可以指向指針類型變量。當這種指針變量用於指向指針類型變量時,我們稱之爲指向指針的指針變量,