原创 【C語言】關於static關鍵字修飾的變量

變量可以被static 修飾,意義有發生變化嗎?  下面我們舉個栗子來說明:  (1)變量不加 static 修飾 #include <stdio.h> void test() { int num = 0; num++

原创 【C++】構造函數初始化列表中成員變量必須初始化的幾種情況

有一個類A,其數據成員如下: class A { ... private: int a; public: const int b; float* &c; static const char* d; static dou

原创 【C++】String中的深淺拷貝問題;深拷貝的兩種寫法(傳統寫法、現代寫法)

一、淺拷貝問題 淺拷貝 首先定義一個Sting類,它包含一個成員變量,一個char*的指針。  namespace CPP { class String { public: private: char* _st

原创 【C++】string的部分接口補充(swap()、replace()、suffix()、find())

swap() swap()接口表示交換,有以下兩種編寫方式  void test_string() { string s1("hello"); string s2("world"); cout << s1 << "--" << s

原创 【C++】String類、String類的常用接口說明及其使用、STL中的迭代器使用

C語言中,字符串是以'\0'結尾的一些字符的集合,爲了操作方便,C標準庫中提供了一些str系列的庫函數,但是這些庫函數與字符串是分離開的,不太符合OOP(Object Oriented Programming,面向對象程序設計)的思想,而

原创 【C++】泛型編程;函數模板;類模板

一、泛型編程 以前我們寫過一個簡單的交換函數。我們不難發現交換函數是與類型有很大關係的,int,double....那麼如何實現一個通用的交換函數呢? void Swap(int& left, int& right) { int

原创 【C++】單例模式(餓漢模式、懶漢模式)

什麼是單例模式? 首先先來了解一下設計模式。設計模式(Design Pattern)是一套被反覆使用、多數人知曉的、經過分類的、代碼設計經驗的總結,一共有23種經典設計模式。爲什麼會產生設計模式這樣的東西呢?就像人類歷史發展會產生兵法。最

原创 【C++】C/C++的內存分佈

C/C++中特別注重的是數據存儲,這就與內存分不開,我們想要知道C/C++如何進行數據存儲,就必須瞭解它們的內存分佈。 先來看一段代碼: int globalVar = 1; static int staticGlobalVar = 1

原创 【C++】類和對象(5)初始化列表、static成員、C++11成員初始化、友元函數及友元類、內部類

一、初始化列表 在創建對象時,編譯器通過調用構造函數,給對象中各個成員變量一個合適的初始值。 #include <iostream> using namespace std; class Date { public: Date(in

原创 【C++】實現一個Date類

Date類的代碼具體實現如下: Date.h #include <iostream> #include <stdio.h> #include <stdlib.h> using namespace std; class Date { p

原创 【Linux】信號的處理以及信號集操作函數

首先來再次看看這張圖: sigset_t 從上圖來看,每個信號只有一個bit的未決標誌,非0即1,不記錄該信號產生了多少次,阻塞標誌也是這樣表示的。因此,未決和阻塞標誌可以用相同的數據類型sigset_t來存儲,sigset_t稱爲信號

原创 【Linux】信號的捕捉(捕捉過程及捕捉函數)

信號的捕捉過程 我們現在知道了信號在產生之後不是被立即處理的,而是在合適的時候才進行處理,那麼什麼時候是合適的時候呢?信號又是怎麼被捕捉的呢? 合適的時候是指:從內核態切換爲用戶態時進行信號的捕捉。 在Linux下,作爲普通用戶的我們會發

原创 【Linux】如何安裝gdb調試器 超實用!!

1.卸載舊版本 首先我們需要檢查系統中有沒有安裝過gdb,有的話用一下命令卸載gdb舊版本。 2.安裝Texinfo文檔系統 先用su切換到root模式,然後執行yum命令 3.下載安裝包 4.解壓 5. (./configure

原创 【Linux】信號的基本概念、信號的產生、記錄與處理

一、信號的基本概念 信號在我們生活中隨處可見,上課鈴聲、喇叭、紅綠燈、警報、鬧鐘、電話鈴聲.....等等。我們知道即使信號沒有產生,我們也知道該如何處理它,比如,紅燈我們就該停,電話響就該接....。那是因爲在第一次遇到他時,我們就記住了

原创 【Linux】什麼是Core Dump值?

Core Dump值最初接觸到是在進程控制那個部分,(【Linux】進程的控制 ---- 創建、終止、等待、替換)其中進程終止時,子進程的退出狀態status的位圖如下: 當一個進程要異常終止時,可以選擇把進程的用戶空間內存數據以文件的