第八章:应用框架内容摘要:
以 , 执行时输出: Customer: Linda。 三、应用框架的特点 ☆ 指针可以当做函数的自变量。 例如 , include include // class Person and Customer void Set( Person* p ) { pSetName( Amy )。 } void main() { Customer cust。 ( Linda )。 Set( amp。 cust )。 ()。 } 此时 p 指向 cust对象 , 是正确的。 此程序输出: Customer: Amy。 三、应用框架的特点 ☆ 函数可以回传抽象类的指针。 例如 , include // class Person and Customer Person* sub() { Customer* pc = new Customer()。 pcSetName( Tom )。 return (Person*)pc。 } void main() { sub()Display()。 delete sub()。 } 此程序输出: Customer: Tom。 return指令将 pc 值转为 Person*类型的指针 , 然后传回来 , 于是 sub() 值为 Person类的指针 , 正指向 new 所产生的对象。 三、应用框架的特点 一、框架概述 二、应用框架应用 三、应用框架的特点 四、应用框架设计方法 五、实际应用 基于 UML描述的应用框架模型 ☆ 能声明抽象类的引用 (Reference)。 由于引用与指针是一体的两面 , 引用的本质是指针 , 所以 C++ 允许: ◎ 声明抽象类的引用。 ◎ 抽象类的引用可以做为函数的自变量。 ◎ 函数可以传回抽象类的引用值。 include // class Person and Customer Personamp。 sub( Personamp。 x ) { ( John )。 return x。 } void main() { Customer cust。 sub(cust).Display()。 } 此程序输出: Customer: John。 其中 , sub() ≡ x ≡ cust。 所以 sub(cust).Display() 指令相当于 ── ()。 四、应用框架的特点 双向通信 ( 正向通信 ) 传统的链接库 (Function Library)及类库 (Class Library) 只提供单向通信 , 而应用框架则提供双向通信。 应用框架也提供了正向通信方法。 例如 , 假设前面所谈过的 Person及 Customer两类已存于应用框架中 ,则可写程序如下: class VIP : public Customer { char tel[15]。 public: VIP( char* na, char* t ) { SetName( na )。 strcpy( tel, t )。 } virtual void Display() { Customer::Display()。 cout TEL: tel endl。 } }。 void main() { VIP v( “Zhengwei, “13060408095 )。 ()。 } 执行时输出: Customer: Zhengwei TEL: 13060408095 四、应用框架的设计方法 双向通信 ( 反向通信 ) 前辈调用晚辈。 这种情形称为反向通信。 例如 , 假设框架中增加了Product服务类如下: class Product { protected: int pno。 Customer* pc。 public: Product( int no ) { pno = no。 } void SoldTo( Customeramp。 c ) { pc = amp。 c。 } void Inquire() { Print()。 cout sold to ... endl。 pcDisplay()。 } virtual void Print()=0。 }。 四、应用框架的设计方法 VIP程序如下: include // class Person and Customer class Product class VIP : public Customer { char tel[15]。 public: VIP( char* na, char* t ) { SetName( na )。 strcpy( tel, t )。 } virtual void Display() { Customer::Display()。 cout TEL: tel endl。 } }。 class TV : public Product { double price。 public: TV( int no, double pr ) : Product( no ) { price = pr。 } virtual void Print() { cout TV No: pno endl。 cout Price: price endl。 }。第八章:应用框架
本资源仅提供20页预览,下载后可查看全文
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。
用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。
相关推荐
第八章食品中蛋白质和氨基酸的测定
动分析仪法(简介) 第九章 食品添加剂的检验 第一节 概述 一 、 食品添加剂的概念 、 分类和测定意义 1.概念 食品添加剂是指为改善食品品质和色、香、味以及防腐和加工艺的需要而加入食品中的化学合成或者天然物质。 这些物质本身不作为食用目的,也不一定有营养价值。 但不包括污染物、残留农药。 2 . 分类 食品添加剂的种类很多,按其来源分为天然食品添加剂和化学合成添加剂 天然食品添加剂:利用动
第八节精密水准仪、自动安平水准仪和电子水准仪
准尺一个分格( 1cm或 )的 1/100单位( 或 ),提高读数精度。 ( 4)视准轴与水准轴之间的联系相对稳定。 精密水准仪均采用钢构件,并且密封起来,受温度变化影响小。 楔型丝 测微器 读数窗 水准器 视窗 读数: 197150 2.精密水准尺 精密水准尺是在木质尺身的槽内,安有一根因瓦合金带。 带上标有刻划,数字注在木尺上。 3.精密水准仪的操作方法
第八章面向对象数据库
申请锁的那个粒度 , 而解锁时的顺序则是由下而上的。 33 • 例: 已知学校人员的类层次结构 , 若事务 T要修改李伟峰教授的属性值 , 则不同层次的加锁顺序和锁类型。 (1) 给类人加 IX锁 , (2) 给类教职工加 IX锁 , (3) 给类教师加 IX锁 , (4) 给类教授加 IX锁 , (5) 给对象李伟峰加 X锁。 解锁的顺序:李伟峰 、 教授 、 教师 、 教职工 、 人。