/ Forside / Teknologi / Udvikling / C/C++ / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
C/C++
#NavnPoint
BertelBra.. 2425
pmbruun 695
Master_of.. 501
jdjespers.. 500
kyllekylle 500
Bech_bb 500
scootergr.. 300
gibson 300
molokyle 287
10  strarup 270
cyklisk typedef i klasser
Fra : Thomas Krog


Dato : 16-09-01 19:55

struct A{
typedef int AT;
void test(B::BT b){}
};
struct B{
typedef int BT;
void test(A::AT a){}
};

I ovenstående eksempel klager compileren over at B::BT ikke er defineret ved
linje 3. Findes der en måde at løse dette på eller er man nødt til at rykke
"typedef int BT;" ud af klassen B?



 
 
Soeren Dalby (16-09-2001)
Kommentar
Fra : Soeren Dalby


Dato : 16-09-01 22:23

Prøv at skrive:

struct B;
struct A{
typedef int AT;
void test(B::BT b){}
};
struct B{
typedef int BT;
void test(A::AT a){}
};

Mit C++ er ved at være lidt rustent, men det burde virke


--
Best regards

Soeren Dalby
www.dalbydata.dk

"Thomas Krog" <rick@kampsax.dtu.dk> wrote in message
news:9o2sin$hh1$1@eising.k-net.dk...
> struct A{
> typedef int AT;
> void test(B::BT b){}
> };
> struct B{
> typedef int BT;
> void test(A::AT a){}
> };
>
> I ovenstående eksempel klager compileren over at B::BT ikke er defineret
ved
> linje 3. Findes der en måde at løse dette på eller er man nødt til at
rykke
> "typedef int BT;" ud af klassen B?
>
>



Thomas Krog (17-09-2001)
Kommentar
Fra : Thomas Krog


Dato : 17-09-01 14:56

"Soeren Dalby" <nospam@nospam.com> wrote in message
news:3ba51836$0$972$edfadb0f@dspool01.news.tele.dk...

> Prøv at skrive:
>
> struct B;
> struct A{
> typedef int AT;
> void test(B::BT b){}
> };
> struct B{
> typedef int BT;
> void test(A::AT a){}
> };
>
> Mit C++ er ved at være lidt rustent, men det burde virke

Det virker desvaere ikke. Compileren klager over at selve typen B::BT ikke er
defineret ved linje 3:

typedefTest.cpp:6: incomplete type `B' does not have member `BT'
typedefTest.cpp:6: parse error before `)'


--
Posted from mikkel.mbar.dtu.dk [192.38.95.137]
via Mailgate.ORG Server - http://www.Mailgate.ORG

Ivan Johansen (18-09-2001)
Kommentar
Fra : Ivan Johansen


Dato : 18-09-01 16:59

Thomas Krog wrote:

> struct A{
> typedef int AT;
> void test(B::BT b){}
> };
> struct B{
> typedef int BT;
> void test(A::AT a){}
> };
>
> I ovenstående eksempel klager compileren over at B::BT ikke er defineret ved
> linje 3. Findes der en måde at løse dette på eller er man nødt til at rykke
> "typedef int BT;" ud af klassen B?

Du er nødt til at flytte definitionen af BT uden for klassen. Det du
forsøger er ikke muligt i C++. Du kan ikke bruge en type før den er
defineret.

Ivan Johansen


Søg
Reklame
Statistik
Spørgsmål : 177501
Tips : 31968
Nyheder : 719565
Indlæg : 6408522
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste