回答編集履歴

3

ミス修正

2017/07/09 12:09

投稿

Chironian
Chironian

スコア23272

test CHANGED
@@ -26,7 +26,7 @@
26
26
 
27
27
  ```C++
28
28
 
29
- EtherCAT::EtherCAT() : InetSocketAddress("IPv4アドレス")
29
+ EtherCAT::EtherCAT() : Sla1RecvSocketAddr("IPv4アドレス")
30
30
 
31
31
  {
32
32
 

2

追記

2017/07/09 12:09

投稿

Chironian
Chironian

スコア23272

test CHANGED
@@ -17,3 +17,23 @@
17
17
 
18
18
 
19
19
  InetSocketAddressにデフォルト・コンストラクタを定義するか、EtherCATクラスのデフォルト・コンストラクタでInetSocketAddressの存在するコンストラクタを明示的に呼び出して、初期化すれは良いと思います。
20
+
21
+
22
+
23
+ 例えば、後者の場合は、以下のイメージです。
24
+
25
+
26
+
27
+ ```C++
28
+
29
+ EtherCAT::EtherCAT() : InetSocketAddress("IPv4アドレス")
30
+
31
+ {
32
+
33
+
34
+
35
+ }
36
+
37
+ ```
38
+
39
+

1

途中投稿されたので追記

2017/07/09 09:32

投稿

Chironian
Chironian

スコア23272

test CHANGED
@@ -6,6 +6,14 @@
6
6
 
7
7
 
8
8
 
9
- InetSocketAddress Sla1RecvSocketAddr;
9
+ EtherCATクラスは、InetSocketAddressクラス型のメンバ変数Sla1RecvSocketAddrを持っています。
10
10
 
11
- 明示的に初期化しない場合は、デフォルト・コンストラクタ
11
+ これが、EtherCATクラスのデフォルト・コンストラクタで初期化されますが、明示的に指定ていないためInetSocketAddressのデフォルト・コンストラクタで初期化されます。
12
+
13
+
14
+
15
+ しかし、恐らく、InetSocketAddressクラスにはデフォルト・コンストラクタが定義されておらず、「適切なコンストラクタが見つからない」エラーが出ています。
16
+
17
+
18
+
19
+ InetSocketAddressにデフォルト・コンストラクタを定義するか、EtherCATクラスのデフォルト・コンストラクタでInetSocketAddressの存在するコンストラクタを明示的に呼び出して、初期化すれは良いと思います。