原文http://blog.csdn.net/ztz0223/article/details/7596025
前一講:
RSA建模 c++類圖
已經說過了,如何產生一個結構體,新增成員變數,添加帶參數的成員函數,那麼如何看到效果呢?
這就是本文要說的了:變換->UML to C++
回憶一下,之前建立的模型--c++類圖。
現在要用這個類圖類產生相應的代碼:
步驟一,選擇建模檔案example_uml,右鍵,快顯視窗選擇變換-》建立配置:
步驟二,輸入配置名:
步驟三,建立目標容器:
步驟四,建立產生的c++工程,輸入example_cpp作為c++的工程名:
步驟五,點擊完成,轉換配置自然就完成了,最後結果了:
可以點擊視窗中 UML to C++屬性,定製需要的一些操作。
步驟六,點擊運行便可產生C++代碼了:
最後產生的程式碼工程如下:
我們再看看代碼,和上一講所說如何?
ok,雙擊 my_struct.h :
[cpp] view plaincopy
- #ifndef MY_STRUCT_H
- #define MY_STRUCT_H
- //Begin section for file my_struct.h
- //TODO: Add definitions that you want preserved
- //End section for file my_struct.h
-
-
-
-
- //@generated "UML to C++ (com.ibm.xtools.transform.uml2.cpp.CPPTransformation)"
- struct my_struct
- {
-
- //Begin section for my_struct
- //TODO: Add attributes that you want preserved
- //End section for my_struct
-
- private:
-
-
- //@generated "UML to C++ (com.ibm.xtools.transform.uml2.cpp.CPPTransformation)"
- double m_dbl;
-
-
-
-
- public:
-
- //@generated "UML to C++ (com.ibm.xtools.transform.uml2.cpp.CPPTransformation)"
- int * m_func(long arg_in);
-
-
-
- }; //end struct my_struct
-
-
-
- #endif
my_struct.cpp:
[cpp] view plaincopy
- #include "my_struct.h"
- //Begin section for file my_struct.cpp
- //TODO: Add definitions that you want preserved
- //End section for file my_struct.cpp
-
-
- //@generated "UML to C++ (com.ibm.xtools.transform.uml2.cpp.CPPTransformation)"
- int * my_struct::m_func(long arg_in)
- {
- //TODO Auto-generated method stub
- return 0;
- }
明顯可見了,上一文章說的,建立的類成員變數和類的成員函數都和建模一致了。
如果我們修改了之前的類圖設計,代碼也可以跟著一起變化的,操作如下咯:
1、我在之前的結構體裡面添加一個靜態函數,static int do_nothing();
2、儲存整個工程,在工作區選擇變換設定檔tc1.tc標籤欄,點擊運行
3、會提示你,新的修改要寫入之前的檔案,確定就是了:
4、我們再看看代碼,標頭檔 my_struct.h:
[cpp] view plaincopy
- #ifndef MY_STRUCT_H
- #define MY_STRUCT_H
- //Begin section for file my_struct.h
- //TODO: Add definitions that you want preserved
- //End section for file my_struct.h
-
-
-
-
- //@generated "UML to C++ (com.ibm.xtools.transform.uml2.cpp.CPPTransformation)"
- struct my_struct
- {
- //Begin section for my_struct
- //TODO: Add attributes that you want preserved
- //End section for my_struct
-
- private:
-
-
- //@generated "UML to C++ (com.ibm.xtools.transform.uml2.cpp.CPPTransformation)"
- double m_dbl;
-
-
-
-
- public:
-
- //@generated "UML to C++ (com.ibm.xtools.transform.uml2.cpp.CPPTransformation)"
- int * m_func(long arg_in);
-
-
-
- //@generated "UML to C++ (com.ibm.xtools.transform.uml2.cpp.CPPTransformation)"
- static int do_nothing();
-
-
-
- }; //end struct my_struct
5、看看cpp實現檔案:
[cpp] view plaincopy
- #include "my_struct.h"
- //Begin section for file my_struct.cpp
- //TODO: Add definitions that you want preserved
- //End section for file my_struct.cpp
-
-
- //@generated "UML to C++ (com.ibm.xtools.transform.uml2.cpp.CPPTransformation)"
- int * my_struct::m_func(long arg_in)
- {
- //TODO Auto-generated method stub
- return 0;
- }
- //@generated "UML to C++ (com.ibm.xtools.transform.uml2.cpp.CPPTransformation)"
- int my_struct::do_nothing()
- {
- //TODO Auto-generated method stub
- return 0;
- }
一切都是如此美好,哈哈。