掲示板一覧   -   トピック一覧
   EA ソースコード生成・コード生成テンプレート
     C言語のクラスの他クラスへのポインタ


スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 トピック
tkouno
投稿日時: 2007-11-20 10:51
EA Administrator
投稿: 3939

C言語のクラスの他クラスへのポインタ

○ご質問

C言語のクラスのコード生成で、他のクラスへの関連がある場合に
ソースコードにはポインタ形式で他のクラスが追加されます。
この内容を出力しないようにすることはできますか?

○回答

以下の方法で変更できるかと思います。

1. Enterprise Architectのメインメニューから
 「設定」→「コード生成のテンプレート」を実行する
2. 表示されるタブの左上の「言語」が「C」になっていることを確認する
3. 左側の一覧から「Linked Attribute」を選択する
4. 右側の編集欄に2行ほど表示されるので、全て削除して「保存」する
5. 既存のコードがある場合には、念のため削除する
6. コード生成を行う
未登録ゲスト
投稿日時: 2008-3-14 15:27

Re: C言語のクラスの他クラスへのポインタ

C言語でコード生成を行い同じ問題にあたっていました。

>C言語のクラスのコード生成で、他のクラスへの関連がある場合に
>ソースコードにはポインタ形式で他のクラスが追加されます。

おそらくこれによりなんらかの利点があると思いますが、
どんなメリットがあるのでしょうか?
また、これを利用するにはどんな操作が必要でしょうか?


以上よろしくお願いします。
tkouno
投稿日時: 2008-3-14 15:38
EA Administrator
投稿: 3939

Re: C言語のクラスの他クラスへのポインタ

UMLのクラス図で、他のクラスの「関連」がある場合には
対象のクラスを参照(利用・アクセス)できるか、あるいは
対象のクラスを保持あるいは管理しているということに
なるかと思います。

C言語の場合も同様に考え、関連がある場合には
そのクラスをポインタ形式で保持する、というのが
既定のコード生成の意味となります。


ただし、「関連」を実装上どのような意味で扱うのか、ということは
テンプレートを変更することで自由に変えることができます。
また、Enterprise Architectのオプションで
動作を変えることもできます。

例えば「内部から参照・利用している」という意味として
モデリングを行うこともできます。この場合には
ポインタを生成する必要はないので、テンプレートを
カスタマイズして生成しないようにできる、ということに
なります。



なお、こうした意味の場合には「依存」の関係を
利用する場合もあります。
(依存先のクラス(ソース)がないと動かない)
Enterprise ArchitectでJavaなどのソースコードを解析する場合
依存の関係をつけるようなオプションがあります。

スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ