Я читал через исходные файлы VTK, я заметил, что в некоторых заголовочных файлах выполняются инструкции.
class vtkArray;
class VTKIOCORE_EXPORT vtkArrayWriter : public vtkWriter
{
//Interface description here.
}
Я был озадачен выражением "класс vtkArray". В чем смысл этого заявления? Для чего он используется, когда самое подходящее время для его использования?
Этот код из файла заголовка.
Это декларация. Он используется главным образом, когда вам нужно объявить тип класса без указания его внутренней формы. Это полезно при работе с указателями или ссылками в качестве таких утверждений, как:
type* x;
type& x;
не требует от компилятора знать размер type
.
Это в файле заголовка? Они объявляют класс vtkArray. Таким образом, им не нужно включать заголовочный файл, содержащий этот класс. Затем они могут просто включать заголовочный файл в файл.cpp.
Изменение: Ссылка на объяснение форвардной декларации
Это выглядит как форвардная декларация. http://en.wikipedia.org/wiki/Forward_declaration Это необходимо, если вы хотите использовать класс до его определения.
forward declaration
. stackoverflow.com/questions/4757565/c-forward-declaration