回答編集履歴
2
void hoge -> ~Base
test
CHANGED
@@ -24,7 +24,7 @@
|
|
24
24
|
|
25
25
|
Base() : esc('E') { }
|
26
26
|
|
27
|
-
virtual
|
27
|
+
virtual ~Base() { }
|
28
28
|
|
29
29
|
void print() { cout << "esc = " << esc << endl; }
|
30
30
|
|
1
代入式の問題について追記
test
CHANGED
@@ -137,3 +137,51 @@
|
|
137
137
|
入りますが、そうでなければ nullptr になります。
|
138
138
|
|
139
139
|
if文では、キャスト結果が nullptr かどうかをチェックしています。
|
140
|
+
|
141
|
+
|
142
|
+
|
143
|
+
**追記**
|
144
|
+
|
145
|
+
dynamic_cast の問題ではなく、if文の式に代入式が使用された場合の意味が
|
146
|
+
|
147
|
+
分からないという質問ですか?
|
148
|
+
|
149
|
+
|
150
|
+
|
151
|
+
次のコードの意味も分かりませんか?
|
152
|
+
|
153
|
+
```C
|
154
|
+
|
155
|
+
#include <stdio.h>
|
156
|
+
|
157
|
+
#include <string.h>
|
158
|
+
|
159
|
+
|
160
|
+
|
161
|
+
int main()
|
162
|
+
|
163
|
+
{
|
164
|
+
|
165
|
+
char buf[1024], *p;
|
166
|
+
|
167
|
+
int len;
|
168
|
+
|
169
|
+
while (fgets(buf, sizeof buf, stdin)) {
|
170
|
+
|
171
|
+
if (p = strchr(buf, '\n'))
|
172
|
+
|
173
|
+
*p = '\0';
|
174
|
+
|
175
|
+
if (len = strlen(buf))
|
176
|
+
|
177
|
+
printf("len('%s') = %d\n", buf, len);
|
178
|
+
|
179
|
+
else
|
180
|
+
|
181
|
+
puts("empty line");
|
182
|
+
|
183
|
+
}
|
184
|
+
|
185
|
+
}
|
186
|
+
|
187
|
+
```
|