В Effective C ++ (3-е издание) Скотт Мейерс в пункте 31 предлагает, чтобы классы помимо своих классические файлы объявлений (.h) и определений (.cpp), включаемый файл прямого объявления (fwd.h), который может использовать класс, которому не требуется полное определение, вместо прямого объявления себя.
для этого, но я действительно не считаю это жизнеспособным вариантом ... Это кажется очень сложным в обслуживании, довольно излишним и вряд ли необходимым.
Однако я могу увидеть его использование для шаблонных предварительных объявлений, которые являются довольно тяжеловесен. Но для простых классов? Кажется, что это сложно поддерживать и создаст много почти пустых включаемых файлов, которые обслуживают версию малая цель ... стоит ли это хлопот?
Вот пример:
// Class.h
class Class
{
Class();
~Class();
};
// ClassFwd.h
class Class;
// Class.cpp
Class::Class()
{
}
Class::~Class()
{
}
Мой вопрос :
Что вы, ребята, думаете? Если это хорошая практика?
ПРИМЕЧАНИЕ Меня больше всего интересуют аргументы ЗА эту практику, чтобы увидеть, не упустил ли я что-то, что заставило бы меня согласиться со Скоттом Мейерсом.