原创 指針和引用的區別
引用不是定義一個新的變量,而是給一個已經定義的變量重新起一個別名(引用就是別名)int m=20;int &n=m;int &q=m; //一個變量可以有多個別名m=20; m修改了m值n=30; n修改了m的值q=4
原创 String類
class String{public: String( const char *str); String( const String &other);
原创 智能指針
智能指針就是智能/自動化的管理指針所指向的動態資源的釋放#include<iostream>#include<cstdlib>using namespace std;//****************資源轉移***************
原创 用兩個棧實現一個隊列
思路:棧s1和棧s2,s1用來Push數據,s2用來Pop數據入隊:數據直接壓入棧s1中出隊:若s2爲空,則把s1中除過最後一個壓入的元素全部移入s2中,然後彈出s1的棧頂元素 若s2不爲空,直接彈出s2的棧頂元素#d
原创 用兩個隊列實現一個棧
本來畫了圖的,可是今天傳上來的圖片都看不了,只能默默敲下來了思路:隊列s1和隊列s2Push進來的元素壓入非空隊列Pop操作之後的元素放在空隊列入棧:(1)s1爲空,s2爲空 把所有數據壓入s1中(2)s1爲空,s2不爲空 數據壓入s2
原创 虛基類
class B{public: int b;};class C1 :virtual public B{public: int c1;};class C2 :virtual pu
原创 C++:繼承
1、繼承:通過繼承定義一個類,它們的類型之間的關係建模,共享共有的東西,實現各自本質不同的東西。C++的“繼承”特性可以提高程序的可複用性。繼承定義格式:2、類的大小:class Base{public: Base(int data)
原创 虛基類
class B{public: int b;};class C1 :virtual public B{public: int c1;};class C2 :virtual pu
原创 C++中賦值函數和拷貝構造函數(舉例說明)
拷貝構造函數發生在對象還沒有創建,需要創建時如: MyClass obj1(1); MyClassobj3 = obj1;賦值操作符重載僅發生在對象已經執行過構造函數,即已經創建的情況下如:
原创 單鏈表的折半查找,冒泡排序,選擇排序
//選擇排序void SelectSort(SeqList* pSeqList){ int i = 0, j = 0; int iMaxPos = 0;
原创 C++:繼承
1、繼承:通過繼承定義一個類,它們的類型之間的關係建模,共享共有的東西,實現各自本質不同的東西。C++的“繼承”特性可以提高程序的可複用性。繼承定義格式:2、類的大小:class Base{public: Base(int data)
原创 String類
class String{public: String( const char *str); String( const String &other);
原创 合併兩個已序單鏈表
// 合併兩個已序單鏈表PSListNode MergeList(PSListNode pL1, PSListNode pL2){ PSListNode pNewHead = NULL ;
原创 如何理解虛表及其計算含虛函數的類的大小
在什麼情況下系統會自動生成缺省(默認)的構造函數?1、在類裏面有一個類類型的對象,這個類有自己的缺省構造函數(有缺省的參數,參數有缺省值)。class B{ B(int data) { }};不能合成class B{
原创 指針和引用的區別
引用不是定義一個新的變量,而是給一個已經定義的變量重新起一個別名(引用就是別名)int m=20;int &n=m;int &q=m; //一個變量可以有多個別名m=20; m修改了m值n=30; n修改了m的值q=4