使用引數產生事件

使用 GEN 指令。

關於這項作業

如果事件具有引數,則 GEN 指令如下所示:

instance->GEN(event(parameter[, parameter]*))

在此指令中:

當產生事件時,實際引數名稱及其值會以下列格式顯示在呼叫堆疊中:

instance->event(argument = parameter[,
   argument = parameter]*))

如果事件具有引數,請向 GEN 指令提供正確數目的參數及正確的類型。 例如,如果事件 X 定義為 X(int, B*, char*),其中 B 是定義於 IBM® Rational® Rhapsody® 的類別,則您可以使用下列任一指令產生事件:

A[1]->GEN(X(3,B[5],"now"))
A[1]->GEN(X(1,NULL,"later"))

事件引數必須是定義於 Rational Rhapsody 的類別指標,或者是可以從字串讀取的類型,如 intchar*。 如果您要產生在 Rational Rhapsody 內部或外部定義的使用者定義類型的事件,則您必須超載其 I/O 串流 operator>>(istream&),或者實例化範本 string2X(T& t),以便產品可以解譯輸入的字元。

A[1]->GEN(Y(1)) 指令會運作,這是因為 >> 運算子會自動將字元 "1" 轉換為整數 1。否則,指令 A[1]‑>GEN(Y(one)) 不會運作,這是因為 >> 運算子無法將字元 "one" 轉換為整數。

註: 如果您傳遞複式參數(如 structs)並使用動畫,則您必須置換 >> 運算子。否則,Rational Rhapsody 會產生編譯錯誤。

意見回饋