原创 條款03:儘可能的使用const

1. //重載operator[]並對不同版本給予不同的返回類型; class TextBlock { public: const char& operator[](std::size_t position) const {

原创 一個簡單的客戶機服務器程序

// server.cpp : Defines the entry point for the console application. //客戶端鍵入命令【 client 服務器IP】會有服務器的響應 /***************

原创 c中 case用法

#include <iostream> #include <cstdio> using namespace std; int main() { int i = 3; switch (i) { case

原创 volatile作用

編譯器優化的時候可能會出現問題,如當遇到多線程編程時,變量的值可能因爲別的線程而改變了,而該寄存器的值不會相應改變,從而造成應用程序讀取的值和實際變量值不一致。 例如,在本次線程內,當讀取一個變量時,爲提高存取速度,編譯器優化時有時會先

原创 棧空間的最大值是多少

在windows下,棧地址是向低地址擴展的數據結構,是一塊連續的內存區域。棧頂的地址和棧的最大容量是系統預先規定好的,在windows下,棧的大小是2MB,而申請堆空間的大小一般小於2GB 由於內存的讀取速度比硬盤快,當程序遇到大規

原创 純虛函數

純虛函數是一種特殊的虛函數,它的一般格式如下: class <類名> { virtual <類型><函數名>(<參數表>)=0; … }; 例: class A { public:     A() {}     virtual int

原创 C++類中的靜態成員與靜態函數

C++類中的靜態成員有一個非常好的功能,那就是無論類定義了多少個對象,這些對象始終都共同使用這一個靜態成員 例如:   class A { public:    static int num;     A(){num++}     } 

原创 c++中不能被申明爲虛函數的函數

常見的不不能聲明爲虛函數的有:普通函數(非成員函數);靜態成員函數;內聯成員函數;構造函數;友元函數。 1.爲什麼C++不支持普通函數爲虛函數? 普通函數(非成員函數)只能被overload,不能被override,聲明爲虛函數也沒有什麼

原创 用歐拉篩法優化斯特尼篩法(質數篩法)

#include <iostream> #include <cstdio> #include <vector> #include <cstring> using namespace std; const int g_kMaxs = 10

原创 內存泄露

堆是動態分配內存的,並且分配使用很大的內存,使用不好會產生內存泄露。頻繁的使用malloc和free會產生內碎片(類似磁盤碎片)。 所謂內存泄露是指由於疏忽或錯誤造成程序未能釋放已經不再使用的內存的情況。一般說內存泄露是指堆內存的泄露,

原创 把ip地址轉換爲二進制序列

#include <iostream> #include <cstdio> #include <cstring> #include <deque> using namespace std; const int SZ = 20; c

原创 虛擬地址,邏輯地址,線性地址,物理地址有什麼區別

虛擬地址是由程序產生的由段選擇符和段內偏移地址組成的地址。這兩部分組成的地址並沒有直接訪問物理內存,而是要通過分段地址的變換處理後纔會對應到相應的物理內存地址。 邏輯地址指由程序產生的段內偏移地址。有時把邏輯地址當成虛擬地址,兩者並沒