IBM RSA (IBM rational software architect ) V8 学习之六 C++类模板设计

简介: 原文http://blog.csdn.net/ztz0223/article/details/7603041 前面已经讲述过了IBM RSA (IBM rational software architect ) V8(具体版本V8.

原文http://blog.csdn.net/ztz0223/article/details/7603041

 

前面已经讲述过了IBM RSA (IBM rational software architect ) V8(具体版本V8.04),建模使用的一些操作,具体可以参考如下链接:

 

IBM RSA (IBM rational software architect ) V8 学习之一 安装

IBM RSA (IBM rational software architect ) V8 学习之二 新建项目

IBM RSA (IBM rational software architect ) V8 学习之三 C++类图

IBM RSA (IBM rational software architect ) V8 建模学习之四 C++类图转换成c++代码

IBM RSA (IBM rational software architect ) V8 建模学习之五 C++继承设计

整个的文章关于C++的类图建模的东西也差不多了,面向对象的三大特征:封装、继承和多态,都差不多了,类图自然就是描述封装了,继承前面一讲也说了,多态的话后续会做一个GOF的设计模式系之一的描述吧。

今天说说C++的一个很重要的特征--模板,同时附带着涉及一下命名空间(namespace)。

模板的建模,估计是最简单的了。

废话不多说了,开始吧:

1、还是在之前的项目上面进行,之前已经建立了一个类继承图了,如下:

在图上标柱出来了,黄色矩形区域就是RSA里面说的包了,在C++里面叫做名字空间。

2、新建一个包,名叫template_space,修改构造型为cpp_namespace类型,然后在“属性”的”高级“里面输入名字空间名字也为template_space:

再看修改名字空间的截图,如果不做这一步,你的命名空间代码将是没有名字的,也就是匿名的命名空间:

 

3、选择包(namespace),右键添加类图,命名为“temp_class_diag”

4、添加后在,资源管理器,在包下面就有了相应的命名空间和类图:

5、在类图里面添加一个类命名为class_temp:

6、把class修改为cpp_property类型,鼠标放在类class_temp上面,右键-->"添加UML"-->"模板参数",如下:

7、选择类,修改名字为xx,同时在类里面添加变量,m_xx_temp,选择变量类型为模板xx:

8、保存工程,生成C++代码。相应的C++代码就OK了。代码如下:

  1. #ifndef CLASS_TEMP1_H  
  2. #define CLASS_TEMP1_H  
  3. //Begin section for file class_temp1.h  
  4. //TODO: Add definitions that you want preserved  
  5. //End section for file class_temp1.h  
  6.   
  7.   
  8.   
  9.   
  10. namespace template_space   
  11. {  
  12.   
  13.   
  14.   
  15.     //@generated "UML to C++ (com.ibm.xtools.transform.uml2.cpp.CPPTransformation)"  
  16.     template <class xx>  
  17.     class class_temp  
  18.     {  
  19.   
  20.         //Begin section for ::class_temp1  
  21.         //TODO: Add attributes that you want preserved  
  22.         //End section for ::class_temp1  
  23.   
  24.         private:  
  25.   
  26.   
  27.             //@generated "UML to C++ (com.ibm.xtools.transform.uml2.cpp.CPPTransformation)"  
  28.             xx m_xx_temp;  
  29.   
  30.   
  31.   
  32.   
  33.   
  34.     };  //end class class_temp  
  35.   
  36.   
  37. }//end namespace   
  38.   
  39.   
  40. #endif  

 

周末了,哈哈,累死了。

其实我非常懒的,不是怕自己忘记,真不会写这些,很多都是我自己琢磨出来的,也琢磨了很久哦,IBM RSA的相关的书籍都是V7版本或者之前的,也很少提及C++相关的操作。

还有转载请提及出处!

最后还是一句:一切都是如此美好,哈哈。

 
目录
相关文章
|
缓存 算法 程序员
C++STL底层原理:探秘标准模板库的内部机制
🌟蒋星熠Jaxonic带你深入STL底层:从容器内存管理到红黑树、哈希表,剖析迭代器、算法与分配器核心机制,揭秘C++标准库的高效设计哲学与性能优化实践。
1023 3
C++STL底层原理:探秘标准模板库的内部机制
|
存储 算法 安全
c++模板进阶操作——非类型模板参数、模板的特化以及模板的分离编译
在 C++ 中,仿函数(Functor)是指重载了函数调用运算符()的对象。仿函数可以像普通函数一样被调用,但它们实际上是对象,可以携带状态并具有更多功能。与普通函数相比,仿函数具有更强的灵活性和可扩展性。仿函数通常通过定义一个包含operator()的类来实现。public:// 重载函数调用运算符Add add;// 创建 Add 类的对象// 使用仿函数return 0;
460 0
|
人工智能 机器人 编译器
c++模板初阶----函数模板与类模板
class 类模板名private://类内成员声明class Apublic:A(T val):a(val){}private:T a;return 0;运行结果:注意:类模板中的成员函数若是放在类外定义时,需要加模板参数列表。return 0;
422 0
|
编译器 C++
㉿㉿㉿c++模板的初阶(通俗易懂简化版)㉿㉿㉿
㉿㉿㉿c++模板的初阶(通俗易懂简化版)㉿㉿㉿
|
编译器 C++
模板(C++)
本内容主要讲解了C++中的函数模板与类模板。函数模板是一个与类型无关的函数家族,使用时根据实参类型生成特定版本,其定义可用`typename`或`class`作为关键字。函数模板实例化分为隐式和显式,前者由编译器推导类型,后者手动指定类型。同时,非模板函数优先于同名模板函数调用,且模板函数不支持自动类型转换。类模板则通过在类名后加`&lt;&gt;`指定类型实例化,生成具体类。最后,语录鼓励大家继续努力,技术不断进步!
|
算法 网络安全 区块链
2023/11/10学习记录-C/C++对称分组加密DES
本文介绍了对称分组加密的常见算法(如DES、3DES、AES和国密SM4)及其应用场景,包括文件和视频加密、比特币私钥加密、消息和配置项加密及SSL通信加密。文章还详细展示了如何使用异或实现一个简易的对称加密算法,并通过示例代码演示了DES算法在ECB和CBC模式下的加密和解密过程,以及如何封装DES实现CBC和ECB的PKCS7Padding分块填充。
513 4
2023/11/10学习记录-C/C++对称分组加密DES
|
C++ 开发者
C++学习之继承
通过继承,C++可以实现代码重用、扩展类的功能并支持多态性。理解继承的类型、重写与重载、多重继承及其相关问题,对于掌握C++面向对象编程至关重要。希望本文能为您的C++学习和开发提供实用的指导。
342 16
|
安全 C++
【c++】模板详解(2)
本文深入探讨了C++模板的高级特性,包括非类型模板参数、模板特化和模板分离编译。通过具体代码示例,详细讲解了非类型参数的应用场景及其限制,函数模板和类模板的特化方式,以及分离编译时可能出现的链接错误及解决方案。最后总结了模板的优点如提高代码复用性和类型安全,以及缺点如增加编译时间和代码复杂度。通过本文的学习,读者可以进一步加深对C++模板的理解并灵活应用于实际编程中。
377 0
|
安全 编译器 C++
【C++11】可变模板参数详解
本文详细介绍了C++11引入的可变模板参数,这是一种允许模板接受任意数量和类型参数的强大工具。文章从基本概念入手,讲解了可变模板参数的语法、参数包的展开方法,以及如何结合递归调用、折叠表达式等技术实现高效编程。通过具体示例,如打印任意数量参数、类型安全的`printf`替代方案等,展示了其在实际开发中的应用。最后,文章讨论了性能优化策略和常见问题,帮助读者更好地理解和使用这一高级C++特性。
626 4
|
算法 编译器 C++
【C++】模板详细讲解(含反向迭代器)
C++模板是泛型编程的核心,允许编写与类型无关的代码,提高代码复用性和灵活性。模板分为函数模板和类模板,支持隐式和显式实例化,以及特化(全特化和偏特化)。C++标准库广泛使用模板,如容器、迭代器、算法和函数对象等,以支持高效、灵活的编程。反向迭代器通过对正向迭代器的封装,实现了逆序遍历的功能。
398 3

热门文章

最新文章