原创 C++vector容器A和B的連接

(1)vector<int>v1, v2; 想要實現v1, v2的連接    a、 copy(vt1.begin(), vt1.end(), back_inserter(vt2));    b、 std::vector   vec_1,

原创 new/delete 與 malloc/free 的區別是什麼?

先上區別:    1. new/delete是C++裏纔有的,而new/delete與malloc/free一個顯著的區別在於,new是建造一個對象,並調用對象的構造函數來初始化對象,其實在所有的new操作過程中,總是分爲兩步的:第一步是

原创 在爲函數傳參時, 何時用引用,何時用指針呢?

一般來說,能用引用盡量不用指針。引用更加直觀,更少出現意外的疏忽導致的錯誤。 指針可以有二重、三重之分,比引用更加靈活。有些情況下,例如使用 new 運算符,只能用指針。 關於指針與引用的區別,可以看 CSDN 的【這篇文章

原创 析構函數什麼情況下要定義爲虛函數?

1.第一段代碼 #include<iostream> using namespace std; class ClxBase{ public:     ClxBase() {};     ~ClxBase() {cout << "Out

原创 C++的內存模型

Simplified Memory Model (C++的內存模型) 1. Stack (棧)  編譯器自動分配釋放(包括所有函數裏面的局部變量,形式參數) 2. Heap (堆)  一般由程序員分配釋放,若程序員不釋放,程序結束時可

原创 有關C++中爲什麼用模板類的原因

 ( 1 )可用來創建動態增長和減小的數據結構  (2)它是類型無關的,因此具有很高的可複用性。  (3)它在編譯時檢查數據類型,保證了類型安全  (4)它是平臺無關的,可移植性  (5)可用於基本數據類型

原创 標準ASCII編碼

ASCII 碼使用指定的7 位或8 位二進制數組合來表示128 或256 種可能的字符。標準ASCII 碼也叫基礎ASCII碼,使用7 位二進制數來表示所有的大寫和小寫字母,數字0 到9、標點符號, 以及在美式英語中使用的特殊控制字符

原创 數組名可作爲指針常量

三個結論: (1)數組名的內涵在於其指代實體是一種數據結構,這種數據結構就是數組; (2)數組名的外延在於其可以轉換爲指向其指代實體的指針,而且是一個指針常量; (3)指向數組的指針則是另外一種變量類型(在WIN32平臺下,長度爲

原创 成員函數之重載、覆蓋、隱藏

重載:     只有在 同一類定義中的同名成員函數才存在重載關係 ,主要特點是 函數的參數類型和數目有所不同 (但 不能出現函數參數的個數和類型均相同 ,僅僅依靠返回值類型不同來區分的函數),這和普通函數的重載是完全一致的。另外,重載和

原创 typedef和define具體的詳細區別

1) #define是預處理指令,在編譯預處理時進行簡單的替換,不作正確性檢查,不關含義是否正確照樣帶入,只有在編譯已被展開的源程序時纔會發現可能的錯誤並報錯。例如: #define pi 3.1415926 程序中的:area=pi*r

原创 typedef和define詳細區別

1) #define是預處理指令,在編譯預處理時進行簡單的替換,不作正確性檢查,不關含義是否正確照樣帶入,只有在編譯已被展開的源程序時纔會發現可能的錯誤並報錯。例如: #define pi 3.1415926 程序中的:area=pi*r