繼承與多型的應用:通用鍊錶的實現
1.掌握繼承與多型
2.掌握純虛函式與抽象類以及介面的含義
3.通過多型的形式,建立與型別無關的通用鍊錶
#include #include using namespace std;
class object
virtual ~object()
{}public:
virtual void print()const = 0; //介面
};class list;
class listnode
listnode(object *pobj)
~listnode()
private:
object *data; //父類型別作為子類的介面型別
listnode *next;
};class list
~list()
delete head;
head = tail = null;
}public:
void push_back(object *pb)
void printlist()const
cout<<"nul."<";
}private:
int data;
};2.string型別
class stringobject : public object
else
}~intobject()
private:
char *data;
};int main()
mylist.printlist();
list youlist;
char *str = ;
for(int j = 0; j < 5; ++j)
youlist.printlist();
return 0;
}
多型實現通用鍊錶
鍊錶節點的資料域型別不再為具體的資料型別,而是通過乙個基類指標引入,達到不借助模板而是通過多型實現通用鍊錶 define crt secure no warnings include include using namespace std class object virtual object vi...
鍊錶的通用實現方式
在鍊錶的使用時,結構物件所包含的資料各不相同,所以在鍊錶的儲存需要針對不同的鍊錶物件重複編寫相應的儲存方法,能不能實現一種通用的方式,能夠針對不同的結構物件,實現統一的儲存方法?當然能。一般我們在儲存鍊錶時,都會儲存鍊錶物件結構的首位址,也就是結構指標。在計算機中,對於指標,在32位機器上,實際就是...
鍊錶實現與應用
合併列表 線性表鏈式儲存實驗3 有公升序鏈式儲存的順序表la,存放字元 a c e g 和lb存放字元 a b d f 現通過合併演算法,將兩個鍊錶合併,要求合併後仍為非降序,然後輸出合併後的鍊錶。答案要求 1 將執行結果截圖貼在答案框,注意不要全屏截圖,以保證清晰 2 將main 方法的 貼入答案...