teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

2

実際に作ろうとしているものを追記

2019/08/10 04:27

投稿

fdaskjlfda
fdaskjlfda

スコア40

title CHANGED
File without changes
body CHANGED
@@ -43,7 +43,7 @@
43
43
 
44
44
  上のソースコードでのエラーはなぜ起こっていて、どうすれば解決するかを教えていただけると嬉しいです
45
45
 
46
- ## 追記
46
+ ## 追記1
47
47
  ```c++
48
48
  int getHoge(B::Hoge hoge)
49
49
  {
@@ -51,4 +51,37 @@
51
51
  }
52
52
  ```
53
53
  というのは、[このサイト](https://teratail.com/questions/94312)を読んでわかりました。
54
- ですが、関数の引数として`B::Hoge`を使う場合はどのようにすればよいか見当がつきません。
54
+ ですが、関数の引数として`B::Hoge`を使う場合はどのようにすればよいか見当がつきません。
55
+
56
+ ## 追記2
57
+
58
+ 僕が作ろうとしているのは、Afile, Bfileがあり、以下のソースコードのように互いに依存しています。
59
+
60
+ ```c++
61
+ // Afile.hpp
62
+
63
+ #include "Bfile.hpp"
64
+
65
+ class B;
66
+
67
+ class A {
68
+ int getHoge(B::Hoge hoge);
69
+ };
70
+ ```
71
+
72
+ ```c++
73
+ // Bfile.hpp
74
+
75
+ #include <memory>
76
+ #include "Afile.hpp"
77
+
78
+ class A;
79
+
80
+ class B {
81
+ struct Hoge {
82
+ int huga;
83
+ };
84
+ std::unique_ptr<A> a;
85
+ };
86
+
87
+ ```

1

一部自己解決

2019/08/10 04:27

投稿

fdaskjlfda
fdaskjlfda

スコア40

title CHANGED
File without changes
body CHANGED
@@ -41,4 +41,14 @@
41
41
 
42
42
  ## 質問内容
43
43
 
44
- 上のソースコードでのエラーはなぜ起こっていて、どうすれば解決するかを教えていただけると嬉しいです
44
+ 上のソースコードでのエラーはなぜ起こっていて、どうすれば解決するかを教えていただけると嬉しいです
45
+
46
+ ## 追記
47
+ ```c++
48
+ int getHoge(B::Hoge hoge)
49
+ {
50
+ return hoge.huga; // hoge.hugaはclass B;しただけではわからない
51
+ }
52
+ ```
53
+ というのは、[このサイト](https://teratail.com/questions/94312)を読んでわかりました。
54
+ ですが、関数の引数として`B::Hoge`を使う場合はどのようにすればよいか見当がつきません。