Я довольно ясно понимаю, когда я могу/не могу использовать форвардную декларацию, но я все еще не уверен в одном.Передовая декларация/когда лучше включать заголовки?
Скажем, я знаю, что я должен включать в себя заголовок, рано или поздно разыменовываются объект класса А. Я не ясно, является ли это более эффективно делать что-то вроде ..
class A;
class B
{
A* a;
void DoSomethingWithA();
};
, а затем в CPP есть что-то вроде ..
#include "A.hpp"
void B::DoSomethingWithA()
{
a->FunctionOfA();
}
Или может я, а просто включить заголовок в в файле заголовка B в первую очередь? Если первый более эффективен, я был бы признателен, если бы кто-то четко объяснил, почему, поскольку я подозреваю, что это имеет какое-то отношение к процессу компиляции, который я всегда мог бы сделать, узнав больше.
+1 для Google C++ Style Guide – LihO
приветствий для ответа, и стиль Googles руководство выглядит как это будет больше читать спасибо! – Holly
Я знаю, что эта ветка устарела, но я думаю, что я должен указать, на всякий случай, если кто-то еще ищет логическое обоснование, что обоснование Google, похоже, изменилось на «Избегайте использования форвардных объявлений там, где это возможно». Просто # включите нужные заголовки. " – soulsabr