Kirjoittaja Aihe: { ratkaistu ] c++ luokat ja luokkien ristiviittaukset  (Luettu 2415 kertaa)

teele

  • Käyttäjä
  • Viestejä: 850
    • Profiili
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.
« Viimeksi muokattu: 29.08.24 - klo:15.41 kirjoittanut teele »

_Pete_

  • Käyttäjä
  • Viestejä: 1845
  • Fufufuuffuuu
    • Profiili
Vs: c++ luokat ja luokkien ristiviittaukset
« Vastaus #1 : 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?


Tomin

  • Palvelimen ylläpitäjä
  • Käyttäjä / moderaattori+
  • Viestejä: 11481
    • Profiili
    • Tomin kotisivut
Vs: c++ luokat ja luokkien ristiviittaukset
« Vastaus #2 : 26.08.24 - klo:19.10 »
En kyllä keksi yhtään tapaa tehdä tätä, jos fun1 metodin argumenttia ei voi muuttaa osoittimeksi.
Automaattinen allekirjoitus:
Lisäisitkö [RATKAISTU] ketjun ensimmäisen viestin aiheeseen ongelman ratkettua, kiitos.

teele

  • Käyttäjä
  • Viestejä: 850
    • Profiili
Vs: c++ luokat ja luokkien ristiviittaukset
« Vastaus #3 : 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ä :)