Cześć
Chciałem was zapytać o sposoby sprawdzania danych wejściowych użytkownika tzn jak to się poprawnie powinno robić. Załóżmy że mam taką klasę oraz pól jest zdecydowanie więcej("[...]"):
class Osoba
{
private:
string Imie;
string Nazwisko;
usinged int Pesel;
string Id;
string Wzrost;
string KolorOczow;
string KolorWlosow;
string Email;
int Telefon
char Plec;
[...]
public:
Osoba(string imie, string nazwisko, unsigned int id, string wzrost, string koloroczu, string kolorwlosow, string email, int telefon, char plec, ....)
{
/*
W konstruktorze wypluwam wyjątki dla każdej "złej" wartości zmiennej
*/
}
~Osoba()
{
}
}
W konsoli pobieram od użytkownika każdą daną i dopiero na koniec tworze obiekt Osoba na podstawie tego co podał user - i tu osobiście jako użytkownik takiego programu ostro bym się wkurzył w sytuacji ponownego podania wszystkich danych po wyrzuceniu wyjątku że coś zostało źle wpisane.
A może inne wyjście: dla każdego pola prywatnego "X" tworzę metody SetX(oraz GetX) które zwracają 'bool' więc użytkownik może poprawić dane od razu w zasadzie.
Jak to powinno być poprawnie zaimplementowane? Czytałem, że w C# stosuję się akcesory set{} i get{} które według mnie nieco ułatwiają sprawę. Czy coś takiego warto, ma w ogóle sens implementować w C++ ?
Dzięki
Kamil