Toon posts:

[C++] Forward declarations

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik heb nu zoiets als dit:

C++:
1
2
3
4
5
6
7
8
9
10
11
12
13
#define defFUNCTIE(value) void value( Interface::eFormats tmp )
typedef defFUNCTIE((*FUNCTIE));

struct Interface
{
  typedef enum
  {
    waarde1,
    ...
  } eFormats;

  FUNCTIE mFunctie;
}


Mijn vraag is... Ik krijg nu fouten omdat hij de class "Interface" nog niet kent.

Nu goed, heb ik 'struct Interface' bovenaan toegevoegd.

Nu krijg ik daarbij de volgende fouten:
error C2061: syntax error : identifier 'eFormats'
error C2027: use of undefined type 'Interface'


Dus nu zit ik (denk ik toch) met een probleempje. Ik zou die functies als variables willen gebruiken in de class, en ik wil de enums, die in de class zitten gebruiken als argumenten van die functies.
Ben ik weer aan het doordraven, of kan 1 van de guru's mij hier wijzen op een essentiele logica-fout?

Thx

  • curry684
  • Registratie: Juni 2000
  • Laatst online: 12-05 22:23

curry684

left part of the evil twins

Haal de scope-resolution sectie (Interface::) eens weg uit die macro. Interface is terecht op dat moment undefined, maar in local scope kan ie die enum wel vinden.

Professionele website nodig?


Verwijderd

Topicstarter
Ik heb het nu opgelost met :

C++:
1
2
3
namespace Interface { ... eFormats; }
// Hier komen de define's & typedef's
namespace Interface { struct MainClass { ... }; }



Vwalla ;)


Thx

  • curry684
  • Registratie: Juni 2000
  • Laatst online: 12-05 22:23

curry684

left part of the evil twins

Bliep dus nu heb je het opgelost door de functionele indeling van je programma 100% te wijzigen? :?

* curry684 kan zich niet herinneren ooit een struct door een namespace vervangen te hebben.... :X

Professionele website nodig?


Verwijderd

Ja, maar daardoor mis jij nou nèt die creativiteit die nodig is om de echte top te bereiken :+.

  • curry684
  • Registratie: Juni 2000
  • Laatst online: 12-05 22:23

curry684

left part of the evil twins

Verwijderd schreef op 29 juli 2004 @ 14:18:
Ja, maar daardoor mis jij nou nèt die creativiteit die nodig is om de echte top te bereiken :+.
* curry684 kijkt verschrikt naar z'n visitekaartje en scheurt 'm doormidden :X :+

Professionele website nodig?


  • MSalters
  • Registratie: Juni 2001
  • Laatst online: 09-04 22:08
Macro's zijn de reden dat een tech-forum een :r smiley heeft.

Typedef's zijn echte definities en werken normaal samen met scopes.

Man hopes. Genius creates. Ralph Waldo Emerson
Never worry about theory as long as the machinery does what it's supposed to do. R. A. Heinlein

Pagina: 1