Ubuntu Suomen keskustelualueet

Ubuntun käyttö => Ohjelmointi, palvelimet ja muu edistyneempi käyttö => Aiheen aloitti: teele - 21.08.24 - klo:21.24

Otsikko: { ratkaistu ] c++ luokat ja luokkien ristiviittaukset
Kirjoitti: 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.
Otsikko: Vs: c++ luokat ja luokkien ristiviittaukset
Kirjoitti: _Pete_ - 26.08.24 - klo:15.01
Varmaankin olet .h filessä määritellyt luokat oikein ja sitten siellä missä yrität luokkia käyttää includoinut .h fileet jossa on määrittelyt?

Otsikko: Vs: c++ luokat ja luokkien ristiviittaukset
Kirjoitti: Tomin - 26.08.24 - klo:19.10
En kyllä keksi yhtään tapaa tehdä tätä, jos fun1 metodin argumenttia ei voi muuttaa osoittimeksi.
Otsikko: Vs: c++ luokat ja luokkien ristiviittaukset
Kirjoitti: teele - 29.08.24 - klo:15.41
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ä :)