Hogyan includeoljak származtatott osztályokat és bázisosztályt egyetlen include paranccsal?
Bázisosztály:
#ifndef BASE_H
#define BASE_H
class Base
{
};
#endif // BASE_H
Származtatott:
#ifndef DERIVED_H
#define DERIVED_H
#include "Base.h"
class Derived : public Derived
{
};
#endif // Derived_H
mainban ez úgy lenne jó, ha
#include "Derived.h"
Mert az beemeli a Base-t, de viszont több származtatott osztály esetén minden egyes származtatott osztályt includeolnom kéne, ami nekem nem tűnik elegánsnak, meg ha már bekérek valamit, akkor arról sokszor egyértelműbb "leírást" ad a bázisosztály neve, pl. ha azt írom, hogy:
#include "carcomponent.h"
Ahelyett, hogy:
#include "wheel.h" (ez csak egy példa)
Két dolog jutott eszembe.
1. Csinálni egy header filet csak abból a célból, hogy mindent beemeljen, vagyis minden include abban szerepelne, és a végén (újrahasznosítás szempontjából) csak ezt az egy headert kéne beemelni.
#ifndef _BASE_H
#define _BASE_H
#include "Base.h"
#include "derived1.h"
#include "derived2.h"
...
#endif // _BASE_H
2. A bázisosztály legvégére beemelem az összes származtatott osztályt:
#ifndef BASE_H
#define BASE_H
class Base
{
};
#include "derived1.h"
#include "derived2.h"
...
#endif // BASE_H
Vagy pedig én vagyok a hülye, és van ennek egyszerűbb megoldása is. Szóval, ti hogy csináljátok?
"minden egyes származtatott osztályt includeolnom kéne"
Igen, pontosan így csináld.
Ha gondolod, összeírhatod egy headerbe, ami kell, de azt se javasolnám.
Kapcsolódó kérdések:
Minden jog fenntartva © 2025, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!