Tengo bastante claro cuándo puedo/no puedo usar la declaración directa pero todavía no estoy seguro de una cosa.Reenviar declaración/¿cuándo es mejor incluir encabezados?
Digamos que sé que tengo que incluir una cabecera antes o después de retirar la información de un objeto de la clase A. No me queda claro si es más eficiente para hacer algo así ..
class A;
class B
{
A* a;
void DoSomethingWithA();
};
y luego en el CPP tienen algo así como ..
#include "A.hpp"
void B::DoSomethingWithA()
{
a->FunctionOfA();
}
O puede ocurrir la que también acaba de incluir un encabezado de la a en el archivo de cabecera de B en el primer lugar? Si la primera es más eficiente, agradecería que alguien explicara claramente por qué porque sospecho que tiene algo que ver con el proceso de compilación, lo que siempre podría hacer para obtener más información.
1 Guía de Google C++ Estilo – LihO
aplausos por responder, y el estilo de Google guía parece que va a ser un buen material de lectura gracias! – Holly
Sé que este hilo es viejo, pero creo que debería señalar, por si acaso alguien más busca racionalidad, que el razonamiento de Google parece haber cambiado a "Evitar el uso de declaraciones directas siempre que sea posible. Simplemente # incluya los encabezados que necesita. " – soulsabr