回答編集履歴

1

追記

2020/03/15 00:45

投稿

asm
asm

スコア15149

test CHANGED
@@ -65,3 +65,55 @@
65
65
 
66
66
 
67
67
  みたいな事が言いたいのかなと推測します。
68
+
69
+
70
+
71
+
72
+
73
+ ---
74
+
75
+
76
+
77
+ > 追記2
78
+
79
+
80
+
81
+ > Julia では abstract type はインスタンス化できないので、Animal 型のオブジェクトは存在しません。
82
+
83
+
84
+
85
+ そういえばC++の方は抽象クラスじゃなかったですね。
86
+
87
+
88
+
89
+ ```c++
90
+
91
+ struct Animal{ virtual ~Animal() = 0; };
92
+
93
+ ```
94
+
95
+
96
+
97
+ > Animal dog = Dog();
98
+
99
+ > Animal cat = Cat();
100
+
101
+
102
+
103
+ Dogクラスのインスタンスを作って、[コピーコンストラクタ](https://ja.cppreference.com/w/cpp/language/copy_constructor)でAnimal型の変数にコピーし
104
+
105
+ 結果として、Animal型の変数になりDogとしての部分は切り落とされます。
106
+
107
+
108
+
109
+ ```julia
110
+
111
+ dog = Animal()
112
+
113
+ dog .= Dog()
114
+
115
+ ```
116
+
117
+
118
+
119
+ みたいな感じですかね