В вашем файле klass.hpp
:
#pragma once
class Another;
class Klass : public Another
{
public:
Klass();
};
class Another;
- это предварительное объявление: оно просто вводит имя Another
в область видимости C ++. Это предварительное объявление просто включает частичную классификацию имени Another
(то есть, что оно относится к классу). Он не предоставляет всех деталей для создания полной декларации (например, он не дает деталей для определения его размера).
Таким образом, Another
выше является неполным типом и его размер неизвестен компилятору. Следовательно, вы не можете предоставить определение класса Klass
, унаследовав от Another
, неполный тип. Если бы вы могли, какой тогда должен быть размер Klass
?.