Portál AbcLinuxu, 12. května 2025 04:36

Dotaz: Hypotetická otázka - jazyk C/C++

10.11.2008 23:04 radek
Hypotetická otázka - jazyk C/C++
Přečteno: 329×
Odpovědět | Admin
Chtěl bych se optat na jednu hypotetickou otázku. Jedná se mi jestli jde čistě o blbě navrženej projekt (rozdělení na jednotlivé moduly) nebo je-li to možné nějak jasně provést. Máme-li řekněmě násl. soubory: main.cpp, a.cpp, a.h, b.cpp, b.h. "a" i "b" obsahuji třídy, kde v každé třídě je definována fce, která chce využít proměnnou/metodu z druhého modulu (je to sice fakt blbej příklad, protože by bylo dobrý, aby to bylo max. jedním směrem, ale to prosím zanedbejte). Tak bych se chtěl optat, jak z toho kola ven - přesněji jak vyřešit "include". Díky. Např. tato definice (vicenasobne includovani jsem zanedbal)
//soubor a.h
#include "a.h"    // toto samozrejme neni mozny, protoze v potrbujeme znat b.h
#include "b.h"
class CA {
....
float fceA1(CB &prom_b);
....
};

// soubor b.h
#include "b.h"    // toto samozrejme neni mozny, protoze v potrbujeme znat a.h
#include "a.h"
class CB {
...
float fceB1(CA &prom_a);
...
};
Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

10.11.2008 23:29 Sinuhet | skóre: 31
Rozbalit Rozbalit vše Re: Hypotetická otázka - jazyk C/C++
Odpovědět | | Sbalit | Link | Blokovat | Admin

V jednom hlavickovem souboru tu druhou tridu jenom zadeklarujete.

//soubor a.h

class CB;
class CA {
....
float fceA1(CB &prom_b);
....
};


// soubor b.h

#include "a.h"
class CB {
...
float fceB1(CA &prom_a);
...
};

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.