回答編集履歴

2

追記

2016/07/29 07:53

投稿

Chironian
Chironian

スコア23272

test CHANGED
@@ -31,6 +31,8 @@
31
31
  また、(2)を実行している関数をBarだったとします。
32
32
 
33
33
  更に、SendMSAsck()にint型の値、123を渡したかったとします。
34
+
35
+ 下記のようにFooにメンバ変数Bazを定義して中継させることで、123をBar()からSendMSAck()へ渡せます。
34
36
 
35
37
 
36
38
 

1

補足

2016/07/29 07:52

投稿

Chironian
Chironian

スコア23272

test CHANGED
@@ -19,3 +19,73 @@
19
19
 
20
20
 
21
21
  ExecuteEvent()は、`MsAckPtr->SendMSAck();`を呼び出しています。ここで、BundleProtocolの派生クラスが持つ仮想関数SendMSAck()が呼び出されます。
22
+
23
+
24
+
25
+ ---
26
+
27
+ 【補足】
28
+
29
+ 例えば、thisのクラス名がFooだったとします。
30
+
31
+ また、(2)を実行している関数をBarだったとします。
32
+
33
+ 更に、SendMSAsck()にint型の値、123を渡したかったとします。
34
+
35
+
36
+
37
+ ```C++
38
+
39
+ class BundleProtocol
40
+
41
+ {
42
+
43
+ public:
44
+
45
+ virtual void SendMSAsck()
46
+
47
+ {
48
+
49
+ // 省略
50
+
51
+ }
52
+
53
+ };
54
+
55
+ class Foo : public BundleProtocol
56
+
57
+ {
58
+
59
+ int Baz;
60
+
61
+ public:
62
+
63
+ void Bar()
64
+
65
+ {
66
+
67
+
68
+
69
+ Baz=123; // ここで渡したい値を設定
70
+
71
+ simulationEngineInterfacePtr->ScheduleEvent(new ReSendMSAckEvent(this));
72
+
73
+
74
+
75
+ }
76
+
77
+
78
+
79
+ void SendMSAsck()
80
+
81
+ {
82
+
83
+ std::cout << Baz << "\n"; // ここで123を受け取れる。
84
+
85
+ }
86
+
87
+ };
88
+
89
+ ```
90
+
91
+