3 Stimmen

Sollten Sie sich auf einen anderen Header für die darin enthaltenen Header verlassen?

Unter der Annahme, dass alle Header geschützt sind, könnte man sagen, dass Sie einen abstrakten Datentyp haben.

#include "that.h"
#include "there.h"

class Foo {
 protected:
  // Functions that do stuff with varOne and varTwo
 private:
  that varOne; 
  there varTwo;
 ...
};

Würden Sie sich dann in den Klassen, die von foo erben (und somit foo.h einschließen), auch die Mühe machen, das und das einzuschließen? Normalerweise schließe ich alles ein, was eine Klasse braucht, unabhängig davon, ob sie es bereits von einem anderen Include erhält. Ist das überflüssig?

0voto

NVRAM Punkte 6587

Dann wird in den Klassen, die von foo erben (und somit foo.h einschließen), würden Sie sich auch die Mühe machen, das einzuschließen und this?

Normalerweise schließe ich Header (mit Guards) für alle Typen ein, die der Header direkt verwendet.

Bei abgeleiteten Klassen, die von der Basisklasse abgeleitet sind, verzichte ich jedoch oft auf diese Möglichkeit. muss haben sie aufgrund von Prototypen von Mitgliedsfunktionen, die überschrieben werden, aufgenommen -- was für este y dass in Ihrem Beispiel.

Letztendlich ist es Ihre Entscheidung, aber Sie können auch überlegen, wie wahrscheinlich es ist, dass sich die Kopfzeilen jemals ändern - denn das ist der einzige Zeitpunkt, an dem es wirklich wichtig ist.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X