Accesarea unei variabile de clasă dintr-o altă clasă în C++ (Inginerie software, C++, Clasa)

Alex Z a intrebat.

Să presupunem că mă aflu într-o funcție din clasa A, în această funcție definesc un obiect din clasa B, să zicem b, și chem o funcție folosind b.func() care actualizează niște valori și array-uri, să zicem x și A. Apoi, creez un obiect dintr-o altă clasă C, să zicem c, și chem una dintre funcțiile sale folosind c.func(). Această funcție ar trebui să utilizeze x și A care au fost actualizate în clasa B în timpul apelului b.func(). Cum pot să le accesez în cadrul funcției c.func()? Am încercat să definesc un obiect din clasa B în c.func(), dar valorile x și A par a fi goale…

3 răspunsuri
JayZ

Cred că ai uitat de parametrii funcțiilor.

Având în vedere că îmi miroase ceva rău la proiectarea ta pentru că cele trei clase pare prea mult strânse iată un lucru pe care îl poți face.

Din moment ce B cunoaște A și c, când apelați c.func() definiți și apelați c.func(A a, X x).

Simon B

Problema este că ați creat două obiecte complet separate ale clasei B.

Ați creat primul obiect în cadrul unei funcții și apoi l-ați inițializat. Apoi ați creat un nou obiect din clasa B într-o altă funcție. Nu există niciun motiv pentru care ar trebui să aibă aceleași valori.

Trebuie să începeți să vă gândiți la domeniul de aplicare al obiectelor dumneavoastră – unde sunt create și inițializate și cum sunt transmise acolo unde sunt necesare.

AjayGohil

Puteți folosi conceptul de moștenire.

În C++, moștenirea este un proces prin care un obiect dobândește automat toate proprietățile și comportamentele obiectului său părinte. În acest fel, puteți reutiliza, extinde sau modifica atributele și comportamentele care sunt definite în altă clasă.

Astfel, clasa c moștenește clasa c din clasa b, astfel încât clasa c dobândește toate metodele și proprietățile clasei B.

consultați următorul site pentru moștenire.

https://www.javatpoint.com/cpp-inheritance

https://www.tutorialspoint.com/cplusplus/cpp_inheritance.htm

Tags:,