[C++] Zmiana znaku na przeciwny i porównanie
Ostatnio zmodyfikowano 2015-08-01 20:22
carlosmay Temat założony przez niniejszego użytkownika |
[C++] Zmiana znaku na przeciwny i porównanie » 2015-08-01 16:21:14 Najprościej: class Ror { private: std::string _fname; std::string _lname; std::string _account; std::string _pin; double _balance; void SetBal( const double & amt ) { _balance += amt; } public: Ror(); Ror( const std::string & pin, const std::string & fn, const std::string & ln, const std::string & acc_num, double bal = 0 ); ~Ror(); void Deposit( const double & amt ); void Withdrawal( double amt ); bool operator ==( const std::string & t ) const; void Show(); };
Metody: void Ror::Deposit( const double & amt ) { if( amt < 0 ) { std::cout << "Wplata nie moze byc ujemna.\nPrzerywam sesje" << std::endl; return; } else SetBal( amt ); }
void Ror::Withdrawal( double amt ) { if( amt > _balance ) { std::cout << "Nie mozesz wyplacic wiecej niz posiadasz." << std::endl; std::cout << "Zamykam sesje." << std::endl; return; } else { amt *=( - 1 ); SetBal( amt ); } }
bool Ror::operator ==( const std::string & t ) const { if( _pin == t ) return true; else return false; }
Użycie: case '1': cout << "Podaj wysokosc wplaty: "; cin.clear(); cin.sync(); cin >> amount; cout << endl; bailee[ i ].Deposit( amount ); op = '0'; break; case '2': cout << "Podaj wysokosc wyplaty: "; cin.clear(); cin.sync(); cin >> amount; cout << endl; bailee[ i ].Withdrawal( amount ); op = '0'; break;
Pytania: 1. Czy taka zamiana znaku na przeciwny jest ok, czy może w jakimś przypadku nie zadziałać? 2. Operator== przeciążony jest dla pola _pin. Jeśli chciałbym dodać drugi sposób na sprawdzenie logowanego użytkownika, np: przez pin, nazwisko lub nr konta, to nie mam za bardzo pomysłu jak to można zrobić. Czy takie wyjście jest dobre? bool Ror::operator ==( const std::string & t ) const { if( _pin == t || _lname == t || _account == t ) return true; else return false; }
|
|
pekfos |
» 2015-08-01 16:42:08 amt *=( - 1 ); SetBal( amt );
|
Krócej tak. Czy takie wyjście jest dobre?
bool Ror::operator ==( const std::string & t ) const { if( _pin == t || _lname == t || _account == t ) return true; else return false; }
|
Jeśli działa.. |
|
carlosmay Temat założony przez niniejszego użytkownika |
» 2015-08-01 20:22:15 Tak wszystko działa. Dzięki za
amt *=( - 1 ); SetBal( amt );
Krócej tak.
|
nie wpadłem na to. |
|
« 1 » |