Chcę użyć klasy w C++, który ma tablicę całkowitą takiego:Korzystanie getter, setter w C++
class A{
private:
int arr[50];
}
Przeczytam coś z pliku tekstowego tak:
sum i1 i2
Że oznacza: Suma tablic index1 i index2 i przechowuj w indeks1.
Jak mogę to zrobić, z użyciem pobierające i ustawiające jak:
seti2(geti1()+geti2())
czy coś takiego (bo to nie jest bardzo przydatne, nie chcę pisać getter i setter dla każdego geti1 indeksu() geti2() ... geti50())
Masz jakiś pomysł?
Nawiasem mówiąc, moje drugie pytanie brzmi, czy getter nie powinien mieć żadnych parametrów i czy seter powinien mieć tylko jeden parametr?
Czasami warto czytać [Czy pobierające i ustawiające biedny projektu?] (Http://stackoverflow.com/questions/565095/are-getters-and-setters-poor-design-contradictory-advice-seen) –
"Robi się to niewygodne" - więc nie rób tego. Jak myślisz, dlaczego musisz to zrobić? Dlaczego jest prywatny? Albo ** (A) ** powinno być enkapsulowane, jeśli masz jakiś powód, by sprawdzić/zmanipulować wejście przed jego pobraniem/ustawieniem - albo chcesz działać na wyższym poziomie, z klasą wykonującą pracę i po prostu wywołując metody jak 'sortArray()', 'processArray()', itp - _xor_ ** (B) ** nie powinno, więc get/setter są bezcelowe. Jeśli wszystko, czego chcesz, to nieskrępowany dostęp publiczny, akcesory są bezcelowe - po prostu użyj prostej tablicy i przestań udawać enkapsulację jako gest znacznika. –