回答編集履歴

2

void hoge -> ~Base

2020/11/16 14:54

投稿

kazuma-s
kazuma-s

スコア8224

test CHANGED
@@ -24,7 +24,7 @@
24
24
 
25
25
  Base() : esc('E') { }
26
26
 
27
- virtual void hoge() { }
27
+ virtual ~Base() { }
28
28
 
29
29
  void print() { cout << "esc = " << esc << endl; }
30
30
 

1

代入式の問題について追記

2020/11/16 14:54

投稿

kazuma-s
kazuma-s

スコア8224

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
+ ```