“array type has incomplete element type” というエラーメッセージは、配列の要素の型が不完全な場合に表示されます。
例えば、次のようなクラスを定義したとします。
class MyClass; class MyArray { MyClass* x[10]; };
このクラス MyArray
には、ポインタ型の配列 x
を定義しています。しかし、配列 x
の要素の型であるクラス MyClass
は定義されていません。
そのため、このようなコードを実行すると、次のようなエラーが表示されます。
$ ./myprogram array type 'MyClass*[10]' has incomplete element type 'MyClass'
このような場合、配列の要素の型を完全な型にする必要があります。例えば、次のようにクラス MyClass
を定義することで、プログラムを修正することができます。
class MyClass { int x; }; class MyArray { MyClass* x[10]; };
この場合、配列 x
の要素の型が完全な型の MyClass
になり、エラーが表示されなくなります。
コメント