回答編集履歴

7

バージョン指摘の回答を復元

2020/06/15 15:14

投稿

SHOMI
SHOMI

スコア4079

test CHANGED
@@ -1,3 +1,13 @@
1
+ g++9.2.0では問題なく動いています。
2
+
3
+ g++のバージョンを上げてみては?
4
+
5
+
6
+
7
+ ---
8
+
9
+
10
+
1
11
  > 「クラス型」は先に記載するしか対応方法はないのでしょうか?
2
12
 
3
13
 

6

文言修正

2020/06/15 15:14

投稿

SHOMI
SHOMI

スコア4079

test CHANGED
@@ -4,7 +4,7 @@
4
4
 
5
5
  そんなことはありません。
6
6
 
7
- スーパー(親)クラスと一致してしまう場合はサブ(子)クラス先に書かなければなりませんが。
7
+ スーパー(親)クラスとサブ(子)クラスをcatchしている場合はサブ(子)クラス先に書かなければなりませんが。
8
8
 
9
9
 
10
10
 

5

順序について追記

2020/06/15 14:59

投稿

SHOMI
SHOMI

スコア4079

test CHANGED
@@ -1,3 +1,13 @@
1
+ > 「クラス型」は先に記載するしか対応方法はないのでしょうか?
2
+
3
+
4
+
5
+ そんなことはありません。
6
+
7
+ スーパー(親)クラスと一致してしまう場合はサブ(子)クラスを先に書かなければなりませんが。
8
+
9
+
10
+
1
11
  動作確認したコードは質問に貼った通りのものでしょうか?
2
12
 
3
13
  例えば以下のようなコードの場合、`msg`はスコープを抜けて解放されるためうまく動きませんが…

4

文言修正

2020/06/15 14:58

投稿

SHOMI
SHOMI

スコア4079

test CHANGED
@@ -1,5 +1,3 @@
1
- 質問に当たってコードを簡略化した結果動く様になっているのかもしれません。
2
-
3
1
  動作確認したコードは質問に貼った通りのものでしょうか?
4
2
 
5
3
  例えば以下のようなコードの場合、`msg`はスコープを抜けて解放されるためうまく動きませんが…

3

文言修正

2020/06/15 14:44

投稿

SHOMI
SHOMI

スコア4079

test CHANGED
@@ -1,10 +1,4 @@
1
- g++9.2.0では問題なく動いています。
2
-
3
- g++のバージョンを上げてみては?
4
-
5
-
6
-
7
- 質問に当たってコードを簡略化した結果動く様になっているのかもしれませんが…
1
+ 質問に当たってコードを簡略化した結果動く様になっているのかもしれません
8
2
 
9
3
  動作確認したコードは質問に貼った通りのものでしょうか?
10
4
 

2

コード追記

2020/06/15 14:44

投稿

SHOMI
SHOMI

スコア4079

test CHANGED
@@ -7,3 +7,33 @@
7
7
  質問に当たってコードを簡略化した結果動く様になっているのかもしれませんが…
8
8
 
9
9
  動作確認したコードは質問に貼った通りのものでしょうか?
10
+
11
+ 例えば以下のようなコードの場合、`msg`はスコープを抜けて解放されるためうまく動きませんが…
12
+
13
+ ```C++
14
+
15
+ bool check_0_100(int x){
16
+
17
+ string msg;
18
+
19
+ if(x < 0)
20
+
21
+ {
22
+
23
+ msg = "負の数が入力されました。";
24
+
25
+ throw msg.c_str();
26
+
27
+ }
28
+
29
+ else if(x > 100)
30
+
31
+ throw ErrorOverFlow();
32
+
33
+ else
34
+
35
+ return true;
36
+
37
+ }
38
+
39
+ ```

1

コードについて追記

2020/06/15 14:40

投稿

SHOMI
SHOMI

スコア4079

test CHANGED
@@ -1,3 +1,9 @@
1
1
  g++9.2.0では問題なく動いています。
2
2
 
3
3
  g++のバージョンを上げてみては?
4
+
5
+
6
+
7
+ 質問に当たってコードを簡略化した結果動く様になっているのかもしれませんが…
8
+
9
+ 動作確認したコードは質問に貼った通りのものでしょうか?