質問編集履歴
4
試したことその3を追記
title
CHANGED
File without changes
|
body
CHANGED
@@ -106,11 +106,50 @@
|
|
106
106
|
して再度実行してみたところ、やはりポインタを使うと文章は出力されませんでした。
|
107
107
|
いずれの場合も、ポインタを使わず変数を使うと想定通り文章が出力されました。その時毎回文章を微妙に変えましたがその通りに出力されました。
|
108
108
|
|
109
|
+
### 試したことその3(追記)
|
110
|
+
ポインタをよそのファイルのメンバ関数ではなく、本体で整数型の配列を指すポインタにしてみたところ、やはりhelloは出力しませんでした。
|
111
|
+
```C++
|
112
|
+
#include <iostream>
|
113
|
+
using namespace std;
|
109
114
|
|
115
|
+
int main(){
|
110
116
|
|
117
|
+
cout<<"hello"<<endl;
|
111
118
|
|
119
|
+
int *p;
|
120
|
+
p=new int[10];
|
121
|
+
delete p;
|
112
122
|
|
123
|
+
//int *p;
|
124
|
+
//p=(int *)malloc(sizeof(int)*10);
|
125
|
+
//free(p);
|
126
|
+
}
|
127
|
+
```
|
128
|
+
配列の動的な確保にnewではなくmallocを使ったらhelloは出力されました。
|
129
|
+
```C++
|
130
|
+
#include <iostream>
|
131
|
+
using namespace std;
|
132
|
+
|
133
|
+
int main(){
|
134
|
+
|
135
|
+
cout<<"hello"<<endl;
|
136
|
+
|
137
|
+
//int *p;
|
138
|
+
//p=new int[10];
|
139
|
+
//delete p;
|
140
|
+
|
141
|
+
int *p;
|
142
|
+
p=(int *)malloc(sizeof(int)*10);
|
143
|
+
free(p);
|
144
|
+
}
|
145
|
+
```
|
146
|
+
|
147
|
+
|
148
|
+
|
149
|
+
|
150
|
+
|
151
|
+
|
113
|
-
### 環境
|
152
|
+
### 環境
|
114
153
|
実行環境はvisual studio codeを使っています。他にもMinGWやMSYS2を最近ダウンロードしました。(実行環境とはこういうのを指す言葉でしょうか?いまいち自信がありません)
|
115
154
|
|
116
155
|
|
3
試したことその2を追記
title
CHANGED
File without changes
|
body
CHANGED
@@ -82,6 +82,34 @@
|
|
82
82
|
cout << "hello"<<endl;
|
83
83
|
|
84
84
|
```
|
85
|
+
### 試したことその2(追記)
|
86
|
+
test.cppという名前をwakaran.cppに変え、makefileのtest部分をすべてwakaranに置換しました。
|
87
|
+
> mingw32-make.exe
|
88
|
+
g++ -Wall -g wakaran.o initialize.o -o tesuto
|
89
|
+
> ./tesuto
|
90
|
+
|
91
|
+
文章は出てきませんでした。
|
92
|
+
その後、
|
93
|
+
> mingw32-make.exe clean
|
94
|
+
|
95
|
+
をしてみたところ、
|
96
|
+
>process_begin: CreateProcess(NULL, rm tesuto wakaran.o initialize.o, ...) failed.
|
97
|
+
make (e=2): wウスt@CェゥツゥワケB
|
98
|
+
makefile:11: recipe for target 'clean' failed
|
99
|
+
mingw32-make: *** [clean] Error 2
|
100
|
+
|
101
|
+
となったので、
|
102
|
+
|
103
|
+
> rm *o
|
104
|
+
> rm *exe
|
105
|
+
|
106
|
+
して再度実行してみたところ、やはりポインタを使うと文章は出力されませんでした。
|
107
|
+
いずれの場合も、ポインタを使わず変数を使うと想定通り文章が出力されました。その時毎回文章を微妙に変えましたがその通りに出力されました。
|
108
|
+
|
109
|
+
|
110
|
+
|
111
|
+
|
112
|
+
|
85
113
|
### 環境とか
|
86
114
|
実行環境はvisual studio codeを使っています。他にもMinGWやMSYS2を最近ダウンロードしました。(実行環境とはこういうのを指す言葉でしょうか?いまいち自信がありません)
|
87
115
|
|
2
環境や実行手順について追記しました。
title
CHANGED
File without changes
|
body
CHANGED
@@ -12,6 +12,8 @@
|
|
12
12
|
|
13
13
|
初学者です。専門用語の言い回しなどまだよくわかっていないため上記の表現で伝わるかわかりません。すみません。自分ではこれ以上何をどうすればいいのかよくわからないのでどうかよろしくお願いします。お力をお貸しください。
|
14
14
|
|
15
|
+
|
16
|
+
|
15
17
|
### 該当のソースコード
|
16
18
|
|
17
19
|
```C++
|
@@ -78,4 +80,30 @@
|
|
78
80
|
Initialize init;
|
79
81
|
init.hello();
|
80
82
|
cout << "hello"<<endl;
|
83
|
+
|
81
|
-
```
|
84
|
+
```
|
85
|
+
### 環境とか
|
86
|
+
実行環境はvisual studio codeを使っています。他にもMinGWやMSYS2を最近ダウンロードしました。(実行環境とはこういうのを指す言葉でしょうか?いまいち自信がありません)
|
87
|
+
|
88
|
+
|
89
|
+
### 実行手順
|
90
|
+
makefileを使っています。
|
91
|
+
内容はこうです。
|
92
|
+
```
|
93
|
+
//makefile
|
94
|
+
tesuto: test.o initialize.o
|
95
|
+
g++ -Wall -g test.o initialize.o -o tesuto
|
96
|
+
|
97
|
+
test.o: test.cpp initialize.h
|
98
|
+
g++ -Wall -g -c -I./ test.cpp -o test.o
|
99
|
+
|
100
|
+
initialize.o: initialize.cpp initialize.h
|
101
|
+
g++ -Wall -g -c -I./ initialize.cpp -o initialize.o
|
102
|
+
|
103
|
+
clean:
|
104
|
+
rm tesuto test.o initialize.o
|
105
|
+
```
|
106
|
+
> mingw32-make.exe
|
107
|
+
./tesuto
|
108
|
+
|
109
|
+
で実行しています。
|
1
出力結果を忘れていましたので、追記しました。
title
CHANGED
@@ -1,1 +1,1 @@
|
|
1
|
-
ポインタからメンバ関数を呼び出
|
1
|
+
ポインタからメンバ関数を呼び出したい
|
body
CHANGED
@@ -4,7 +4,12 @@
|
|
4
4
|
コンパイルは通るものの実行結果が想定と違います。
|
5
5
|
|
6
6
|
本体で宣言したポインタからよそのファイルに定義されたメンバ関数を呼び出したのですが、うまくいきません。
|
7
|
+
出力結果は
|
8
|
+
hello from initialize
|
9
|
+
hello
|
10
|
+
が得られるかなと思いましたが、何も出力されませんでした。
|
7
11
|
|
12
|
+
|
8
13
|
初学者です。専門用語の言い回しなどまだよくわかっていないため上記の表現で伝わるかわかりません。すみません。自分ではこれ以上何をどうすればいいのかよくわからないのでどうかよろしくお願いします。お力をお貸しください。
|
9
14
|
|
10
15
|
### 該当のソースコード
|