Avatar billede nielsenmathias Nybegynder
07. marts 2005 - 12:44 Der er 7 kommentarer og
1 løsning

to klasser skal kende hinanden

Hejsa.
jeg har to klasser, hvis klassedefinition er defineret i hver deres header-fil.

Hvis Class A opretter et objekt af Class B, skal A inkludere B.h . Men hvis B også skal kende A skal B vel indeholde A.h.
Hvordan struktureres det?
jeg har lavet ifndef som følger:
#ifndef A_SEEN
#define A_SEEN
#include "./B.h"

Class A {...};

#endif

og det samme (omvendte :) med Class B. Når A opretter B sender den this-pointeren med, så B får en reference til sin parent. B modtager denne i konstruktøren og gemmer den i en lokal variabel af typen A* a_ptr
Når programmet compiles kender den ikke typen A... ?
nogen ideer? Evt om hvordan man generel få to klasser til at kende hinanden begge veje

Tak, Mathias
Avatar billede arne_v Ekspert
07. marts 2005 - 12:49 #1
Brug en forward erklæring.

class B;

class A
{
  public:
    B *b;
};

class B
{
  public:
    A *a;
};
Avatar billede nielsenmathias Nybegynder
07. marts 2005 - 12:58 #2
ja så nemt var det åbenbart. takker :)
skriv lige et svar så får du dine points
Avatar billede arne_v Ekspert
07. marts 2005 - 13:10 #3
kommer her
Avatar billede nielsenmathias Nybegynder
07. marts 2005 - 13:10 #4
ved du så også hvordan man fixer at ens compiler detekterer clock skews?
Avatar billede arne_v Ekspert
07. marts 2005 - 13:13 #5
Hvad er "clock skews" ?
Avatar billede nielsenmathias Nybegynder
07. marts 2005 - 13:16 #6
jeg så ikke du havcde svaret igen før jeg spurgte, sorry.
Jeg har compilet med en ur der gik forkert. Nu er tiden rigtig, men compileren bliver forvirret over at tidsstemlet på filerne f.eks. er i fremtiden. Det gør at man skal foretage en komplet Build hver gang man ændrer lidt....
har søgt en del på nettet efter en løsning, men ikke fundet nogen løsning der virkede.
Avatar billede arne_v Ekspert
07. marts 2005 - 13:26 #7
Hvilke filer er det som har tid i fremtiden ?

.obj filer kan vel slettes og rebuildes

.cpp .h makefile etc. filer kan vel lige redigeres i notepad så de får rigtig tid
Avatar billede nielsenmathias Nybegynder
07. marts 2005 - 13:34 #8
sørme så :)
regnede med at min editor godt kunne finde ud af at ændre tidstemplet, men nej. nano i fedora kunne godt.
takker!
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester