原创 指針和引用的區別

引用不是定義一個新的變量,而是給一個已經定義的變量重新起一個別名(引用就是別名)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