当前位置:首页 > 芯闻号 > 充电吧
[导读]模板和泛型编程也是C++中很重要的一部分,相信很大一部分程序员都用过某种容器类。但一般来说也就是用用而已,并不会自己构建类模板或者在建模中使用类模板。本文介绍EA中类模板的创建类模板和使用类模板的方法

模板和泛型编程也是C++中很重要的一部分,相信很大一部分程序员都用过某种容器类。但一般来说也就是用用而已,并不会自己构建类模板或者在建模中使用类模板。


本文介绍EA中类模板的创建类模板和使用类模板的方法。


创建类模板


假设我们要创建一个映射类(假设而已,可别真去创建)MyMap,它有两个参数,一个是Key,一个是元素T。


首先创建一个普通的类,设定类名为MyMap。


一定有人在输入类名的时候直接输入MyMap




看起来也是那么回事,但是并不能生成正确的代码。所以还是回到原先的轨道上来吧。只要输入MyMap就好。


接下来选择【Templates】分类,并在【Template Parameter(s)】列表空间中增加Key和T两个参数,Type都指定为class。



按下【确定】按钮返回后,类图会变成下面这样。




生成的代码如下:




使用类模板


作为例子接下来利用MayMap实例化一个类名为PersonMap的类,负责管理从整数到Person*的映射。


首先创建一个普通的类,名为PersonMap。




从工具栏的【Class Relationsships】组里选择下面图标。



然后从PersonMap类向MyMap类拖动鼠标,以建立两个类的连接关系。




鼠标双击《bind》连接线打开属性对话框并选择【Binding】分类,然后按下【Add】按钮在【Parameter Substitution(s)】列表中添加参数。




如上图所示,Formal列可以选择Key和T参数。它们都是在MyMap类模板中定义的。继续操作,指定Key和T参数的内容。


类图会变成下面这样。请关注红圈中的变化。




对应代码如下。




生成的有效代码很少,但这确实是正确的代码。在UML中这种方式叫显示绑定。


在UML中还有一种不指定新类型名的隐式绑定,可是很遗憾,作者并没有在EA中找到合适的表达方法。如果正在阅读本文的你知道怎么做,还请不吝赐教。





本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除( 邮箱:macysun@21ic.com )。
换一批
延伸阅读
关闭