Clasele împotriva structurilor - overflow stivă în limba rusă

În C ++, principala diferență între structura și clasa - accesul modificator, care este implicit pentru membrii lor. Pentru clase, modificatorul privat implicit. și pentru structuri - publice. Desigur, principiile structurii încapsulare prejudiciind astfel. dar clase la rândul lor, împiedică faza de proiectare. care afectează evoluția structurală a proiectului.

Ie De exemplu: selectați o clasă din structura mai simplă decât clasa, deoarece Clasa va trebui să-și reconsidere logica proprietăți de interacțiune care au fost anterior pe același nivel de acces. Acest lucru se traduce prin protseess / metode de suprascriere anexate pentru a asigura încapsulare.

Totul ar fi bine dacă, în orice stadiu de proiectare viitoare când vă brusc seama că uneori umbla în cercuri, ceea ce face un loc de muncă gol, acoperind încapsulare din spate.

Pe de o parte, puteți lua cu siguranță o poziție retsenzora C ++ și să urmeze „litera legii OEP,“ adică, să accepte această birocrație inevitabilă. Dar, pe de altă parte - aceasta este proiectul dumneavoastră, și aveți dreptul să-l construiască în conformitate cu legile sale, dând frâu liber designul liber al unei structuri de clasă complexă, versiunea finală a fix pe clase în conformitate cu regulile PLO.

Răspuns 22 '13 martie la 08:48

- structs mutabil sunt rele. Această declarație pentru C # în măsură din cauza se aplică non-moștenire C ++, respectiv, este logic să se urmărească atunci când scrierea de cod pentru immutab'elnosti tipuri de date. - Este în exemplul dvs., nimic nu împiedică utilizatorul după crearea obiectului de dimensiunea imaginii schimba manual lățimea, care, la rândul său, va conduce la date oblic. Mai ales în cazul în care codul nu scrie dezvoltator Const nazist. - Costantino Rupert 22 martie la 08:43 '13

Nu vorbesc despre stocarea permanentă a datelor, precum și despre timp. Exemplu: pentru a desena am nevoie să știu dimensiunea ei, apoi mult mai ușor pentru a obține structura lor (referință konstanntnoy să-l), puteți primi două elemente separate. Din nou, aici vom discuta despre conceptul de structuri, nu aplicarea lor konkretnou. Deși voi fi de acord, exemplul nu este perfect. - Dmitry Lepeshkin 22 martie la 08:54 '13

articole similare