网站大量收购独家精品文档,联系QQ:2885784924

c++_unit继承与多态.ppt

  1. 1、本文档共102页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
c++_unit继承与多态.ppt

* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * Node::Node(){ info=NULL; link=NULL; } Node::~Node(){ cout删除结点类\t; delete info; //释放数据域,自动调用数据域类析构函数, //而数据域类对象是在main()中建立 } void Node::Linkinfo(Object * obj){info=obj;} //把数据对象连接到结点 【例8.10】通用单链表派生类 List::List(){head=tail=new Node();} List::~List(){ MakeEmpty();cout删除头结点\t;delete head; } //自动调用结点类析构函数, 因指针域空不再调数据域类析构函数 void List::MakeEmpty(){ Node *tempP; while(head-link!=NULL){ tempP=head-link; head-link=tempP-link; //把头结点后的第一个节点从链中脱离 delete tempP; } //释放该结点,先自动调用结点类的析构函数, //再自动调用数据域类的/析构函数, //不可在前面加 delete tempP-info; 以释放数据域类 tail=head; } //表头指针与表尾指针均指向表头结点,表示空链 【例8.10】通用单链表派生类 Node* List::Find(Object obj){ //对抽象类只能用“引用” Node* tempP=head-link; while(tempP!=NULL*tempP-info!=obj) tempP=tempP-link; return tempP; } //搜索成功返回该结点地址,不成功返回NULL void List::PrintList(){ Node* tempP=head-link; while(tempP!=NULL){ tempP-info-Print(); //利用数据类的打印虚函数 tempP=tempP-link;} coutendl;} 【例8.10】通用单链表派生类 void List::InsertOrder(Node* p){ Node *tempP=head-link,*tempQ=head; //tempQ指向tempP前面的一个节点 while(tempP!=NULL){ if(*tempP-info*p-info) break; //找第一个比插入结点大的结点,由tempP指向 tempQ=tempP; tempP=tempP-link; } tempQ-InsertAfter(p); //插在tempP指向结点之前,tempQ之后 if(tail==tempQ) tail=tempQ-link; } 【例8.10】通用单链表派生类 StringObject::~StringObject(){ cout“数据类析构”endl; } //自动进一步调用string析构函数 bool StringObject::operator(Object obj){ //虚函数 StringObject temp=(StringObject )obj; //必须转换 return sptrtemp.sptr; } bool StringObject::operator!=(Object obj){ //虚函数 StringObject temp=(StringObject )obj; //必须转换 return sptr!=temp.sptr; } void StringObject::Print(){ //虚函数 coutsptr\t; } 【例8.10】通用单链表派生类 int main(){ Node * P1; StringObject* p

文档评论(0)

000 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档