原创 修改SVN已提交項目的消息日誌

直接在TortoiseSVN中修改過往日誌,會提示: DAV request failed;it's possible that the repos

原创 虛析構函數(√)、純虛析構函數(√)、虛構造函數(X)

一. 虛析構函數 我們知道,爲了能夠正確的調用對象的析構函數,一般要求具有層次結構的頂級類定義其析構函數爲虛函數。因爲在delete一個抽象類指針的時候,必須要通過虛函數找到真正的析構函數。例如:#include <iostream> u

原创 信號量

信號量對線程的同步方式與前面幾種方法不同,信號量允許多個線程同時使用共享資源,這與操作系統中的PV操作相同。它指出了同時訪問共享資源的線程最大數目。

原创 C++中extern “C”含義深層探索

1.引言   C++語言的創建初衷是“a better C”,但是這並不意味着C++中類似C語言的全局變量和函數所採用的編譯和連接方式與C語言完全相

原创 生產者消費者模式

#include <queue> #include <string> #include <mutex> #include <thread> #include <iostream> class CBuffer { public: CBu

原创 C++虛函數表

前言 C++中的虛函數的作用主要是實現了多態的機制。關於多態,簡而言之就是用父類型別的指針指向其子類的實例,然後通過父類的指針調用實際子類的成員函數。這種技術可以讓父類的指針有“多種形態”,這是一種泛型技術。所謂泛型技術,說白了就是試圖使

原创 C++類型轉換

C風格的強制類型轉換(Type Cast)很簡單,不管什麼類型的轉換統統是: TYPE b = (TYPE)a。C++風格的類型轉換提供了4種類型轉

原创 C++中虛析構函數的作用

我們知道,用C++開發的時候,用來做基類的類,其析構函數一般都是虛函數。可是,爲什麼要這樣做呢?下面用一個小例子來說明: 有下面的兩個類: class Base { public: Base() {}; virtual ~Base(

原创 互斥量

互斥量跟臨界區很相似,只有擁有互斥對象的線程才具有訪問資源的權限,由於互斥對象只有一個,因此就決定了任何情況下此共享資源都不會同時被多個線程所訪問。

原创 Ubuntu14.04下安裝mongodb 3.X

1.安裝key apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 7F0CEB10  2.添加源 echo "deb http://repo.mongod

原创 使用GCC開發動態庫供java調用

1.開發環境 Ubuntu14.04 64位+gcc4.8.4+JDK 2.安裝JDK 1).查看JDK的版本 $java -version 2).安裝JDK 如何沒有安裝JDK,可以通過命令$javah 查看可安裝的J

原创 臨界區

保證在某一時刻只有一個線程能訪問數據的簡便辦法。在任意時刻只允許一個線程對共享資源進行訪問。如果有多個線程試圖同時訪問臨界區,那麼在有一個線程進入後

原创 動態鏈接庫加載函數的兩種方法及區別

動態鏈接庫的編寫: 1.創建一WIN32動態鏈接庫工程Dll1,添加一C++源文件Dll1.cpp,在源文件中編寫一個測試函數 int _stdcall add(int a, int b) {     return (a+b); }

原创 虛擬機擴充硬盤

 1. 按 打開運行對話框,輸入“CMD”,回車,打開命令提示符窗口; 2. 進入 VMware 的安裝目錄(X:\Program Files\VM

原创 ubuntu自帶VI編輯器不好用的解決辦法

由於Ubuntu預安裝的是tiny版本,就會導致我們在使用上的產生不便。所以我們要安裝vim的full版本。 首先,先卸掉舊版的vi,輸入以下命令: sudo apt-get remove vim-common 然後安裝full版的