原创 《More Effective C++》學習心得(二)

指針和引用: 這是一個很基礎的問題;這裏就不多說了。 但要記住:1)當你知道你需要指向某個東西,而且絕不會改變指向其他東西,或是當你實現一個操作符而其語法需求無法由pointers達成,你就應該選擇reference。任何其他時候,請採用

原创 c++ 類在內存中的大小(含虛函數,虛基類)

在類中,如果什麼都沒有,則類佔用1個字節,一旦類中有其他的佔用空間成員,則這1個字節就不在計算之內,如一個類只有一個int則佔用4字節而不是5字節。 如果只有成員函數,則還是隻佔用1個字節,因爲類函數不佔用空間 虛函數因爲存在一個虛函數表

原创 《More Effective C++》學習心得(四) 關於類中類型轉換

#include <iostream> using namespace std; // example1:單參數構造函數可將內建類型轉換爲自建的類類型 class A { public: A(double i=0.0){d=i;}

原创 《More Effective C++》學習心得(一)

首先,由於c++的編譯器的不同,不保證所有的程序都能得到滿意的結果。本人是使用的是VS2005。記得大學剛開始學C++用的是VC6.0,C++98年的標準。有夠老的。該吸收心得知識了。   先介紹新C++標準的兩個新增的特性。1)支持bo

原创 《More Effective C++》學習心得(六) auto_ptr的用法

#include<iostream> using namespace std; class ALA { public: virtual void processAdoption()=0; protected: private: }; c

原创 C++內存對齊

一、爲什麼會有內存對齊? 字,雙字,和四字在自然邊界上不需要在內存中對齊。(對字,雙字,和四字來說,自然邊界分別是偶數地址,可以被4整除的地址,和可以被8整除的地址。) 無論如何,爲了提高程序的性能,數據結構(尤其是棧)應該儘可能地在自然

原创 《More Effective C++》學習心得(五) 前置和後置自增運算符

#include <iostream> using namespace std; class sample { public: sample(int i=0,int j=0) { x=i;y=j; } void print

原创 《More Effective C++》學習心得(六)各種new和delete操作符

new operator 和operator new 的區別 string *ps=new string("Memory Management"); delete ps; 相當於 void *rawMemory=operator new(

原创 《More Effective C++》學習心得(八) 要求(或禁止)對象產生於heap中

一。要求對象必須產生於heap中 #include <iostream> #include <memory> using namespace std; class Print { public: void submitJob()

原创 《More Effective C++》學習心得(七) 構造函數私有化

一.只允許一個對象的生成 每當產生一個對象,就會有一個構造函數被調用,如果“阻止某個class產出對象”,最簡單的辦法就是將其constructors 聲明爲private: #include <iostream> using

原创 部分賦值和異型賦值

#include <iostream> using namespace std; class Animal { public: Animal(int i=1) { i1=i; } virtual Animal& operato

原创 《More Effective C++》學習心得(三) 不要以多態性處理類的對象數組

#include <iostream> using namespace std; class Base { public: operator int() const { return i1; } protected: pri

原创 全局變量,靜態變量,局部變量的理解

1、靜態全局變量     在全局變量前面加上static,該變量就成了一個靜態全局變量。靜態全局變量有如下特點:     1)、變量存儲在全局數據區;     2)、變量會被自動初始化爲0;     3)、靜態全局變量在整個編譯單元(整個

原创 JAVA 垃圾回收機制的討論

java內存泄漏 http://blog.csdn.net/yirentianran/article/details/2537985 http://blog.csdn.net/elimago/article/details/1946380

原创 選擇排序 學習

選擇排序 基本思想:每趟排序後,都得到一個較小的數據,而且以數據互換的操作把較小的數據存入正確的位置,因此下一趟排序就會減少一個掃描數據。 表2-1 選擇排序的時間複雜度 在第i趟排序中選出最小的鍵的記錄,需做n-i此比較,因此,總