// 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; }*/