掲示板一覧   -   トピック一覧
   EA ソースコード生成・コード生成テンプレート
     C++ get/setメソッドのconst設定について


フラット表示 前のトピック | 次のトピック
投稿者 トピック
sugimoto
投稿日時: 2006-8-24 10:50
EA Administrator
投稿: 1895

C++ get/setメソッドのconst設定について

8月23日に頂いたご質問です。

○ご質問

クラスの属性のプロパティ設定画面でget/setメソッドの追加ができますが、
C++では以下のようにconstを付けるケースが多いと思われますので、
プロパティ設定画面で参照のチェックをONにした場合、
const属性をつけるか、const属性を追加するチェックボックスが
あるとうれしいです。

const output& hoge::get() const;
void hoge::set(const output&);

現在はget/setメソッドに、毎回const属性を設定しています。


○回答

実際にconstを付加するスタイルで使用される場合が多い可能性は
ございますが、const は必須ではないと思いますので、
Enterprise Architect の機能として const を必ず付加することは
しておりません。ご理解いただけますと助かります。

現在、属性のプロパティ設定画面にてconst属性を設定するチェック
ボックスはございません。

対応案を2つご提案させていただきます。

案1)コード生成テンプレート変更

 C++のコード生成テンプレートの操作に関する部分にて、
 Stereotype が "property get" や "property set" の場合に
 戻り値やパラメータに const を付加してください。
 なお、属性のプロパティにて参照チェックボックスがONかOFFか
 については、現状情報を取得するすべがございませんので、
 Stereotype のみで判断するなどの対応をお願いします。

案2)アドイン作成

 アドインを作成し、要素が編集された場合に呼ばれるメソッド
 (EA_OnNotifyContextItemModified)を記述します。
 属性を追加・変更したタイミングで、このメソッドが呼ばれます
 ので、プロパティチェックボックスが有効になっている場合は、
 そのget/setメソッド(Stereotype が "property get" や "property set" )
 のconstを有効にするというコードを記述しておくことで、
 手動でconstを設定している手間を省くことが出来ると思います。

 また、既にモデリングをした内容について、constを付加したい場合
 も、アドイン(アプリケーション)の処理にて検索→const設定をする
 ことにより、手間を省くことが可能かと思います。
フラット表示 前のトピック | 次のトピック

題名 投稿者 日時
 » C++ get/setメソッドのconst設定について sugimoto 2006-8-24 10:50