第十九章 8链表类Node 简单

// 8 链表类Node
//为了这个数据类Date以后,接下来还需要一个链表类Node,该类拥有一个插入函数insert和一个输出函数print,由于插入新节点和输出节点的数据这两个或能是所有链表类必备的,所以将它们声明为虚函数,以提醒它的子类必须实现这两个虚函数的功能
/*
#include <iostream>
using namespace std;
//定认枚举形常量
enum{small,large, same};
class Date
{
public:
	Date(int i):date(i){}
	~Date(){}
	int compare(const Date&);
private:
	int date;
};

int Date::compare(const Date& two)
{
	if(date < two.date)
	     return small;
	if(date > two.date){
	     return large;
	}else{
	    return same;
	}
}

//链表类
class Node
{
public:
	Node(){}
	virtual ~Node(){}
	virtual Node* insert(Date *one) = 0;
	//只有拥有一个线纯虚函数的类就是抽像类,所以说Node类是一个抽像类
    virtual void print() = 0;
private:
};
//该类是个抽像类,它的所有成员都是公有的,可以被其他类访问,因此访我的可看作是一个接口,访我的有两个纯虚函数insert()的print(),这两个函数必须在子类中实现功能后才能使用
//目前这个Node类什么也作用也没有,仅仅为它的子类提供了两个未定义好的函数,它要求子类再去定义这些函数

//打个比方,有个抽像类是人类,它有一个方法是上课
//两个类从这个抽像类中派生而出,一个是老师类,一个学生类
//在这种情况下人类就没有必要胚体化上课的细节了,因为老师和学生的上课方式是各自不同的
//人类的作用只是告诉只要是人类就能够上课,假如是动物,当然就不能上课了,符合人类的条件需要几个功能,上课只是其中之一
//我们这里定义链表类Node也是这个目前的,只要是链表就拥有插入新节点的输出节点的数据这两个功能,这两个功能是必须实现的,所以Node类声明了这两个功能,功能由它子类去实现,能够实现的方才是链表,不能实现的就不是链表


int main()
{
    return 0;
}*/

  

原文地址:https://www.cnblogs.com/xiangxiaodong/p/2709102.html