Ubuntu Suomen keskustelualueet
Ubuntun käyttö => Ohjelmointi, palvelimet ja muu edistyneempi käyttö => Aiheen aloitti: teele - 21.08.24 - klo:21.24
-
Yritin tehdä kahta luokka niin, että luokka1 käyttää luokka2:n tyyppistä muuttujaa ja luokka2 käyttää luokka1:n tyyppistä muuttujaa.
Kokeilun rakenne on tällainen
luokka1
{ fun1( luokka2 x);
}
luokka2
{ fun2 (luokka1 y);
}
Käännös ei onnistu, koska luokka1:ssä luokka2:ta ei tunnisteta. Netissä on std::forward- ja std::class -asioista ohjeita, mutta en ainakaan vielä ole keksinyt, miten niistä voisi olla apua.
Joskus muistan nähneeni directiivin forward, jonka voisi kuvitella ratkaisevan tällaisen asian, mutta ainakaan vielä hakutuloksissa sitä ei ole näkynyt.
Mikä olisi ratkaisu, on kokeiltu myös luokkien esittelyä etukäteen ja määrittelyä suoraan funktioineen.
-
Varmaankin olet .h filessä määritellyt luokat oikein ja sitten siellä missä yrität luokkia käyttää includoinut .h fileet jossa on määrittelyt?
-
En kyllä keksi yhtään tapaa tehdä tätä, jos fun1 metodin argumenttia ei voi muuttaa osoittimeksi.
-
Kiitoksia vastauksista
Taitaa tosiaan olla niin, että ihan yritetyn kaltainen rakenne ei onnistu. Voisi käyttää vain osoitteita tai sitten ohjelmarakenne pitää miettiä uudeksi. Onneksi harrastellessa ei ole niin kiirettä :)