usuwanie sie pierwszego obiektu z kontenera
Ostatnio zmodyfikowano 2017-04-15 21:47
mikewazowski Temat założony przez niniejszego użytkownika |
usuwanie sie pierwszego obiektu z kontenera » 2017-04-15 20:50:44 poproszę o wskazówkę co robię nie tak - kiedy case 1 jest wywoływany więcej niż jeden raz to przy wyświetlaniu listy wszystkich osób w miejscu pierwszej dodanej osoby pokazują się losowe dane #include <iostream> #include <vector> #include <cstdlib> using namespace std;
class Osoba { public: static int liczba; private: string imie; int rok; int indeks; public: Osoba() { } ~Osoba(); void WpiszDane( int a, string b ) { cout << "podaj rok urodzenia: "; cin >> a; rok = a; cout << "podaj imie: "; cin >> b; imie = b; indeks = liczba; liczba++; } void Wypisz() { cout << "indeks: " << indeks << endl; cout << "imie: " << imie << endl; cout << "rok ur: " << rok << endl; cout << "wiek: " << 2017 - rok << endl; cout << endl; } }; typedef std::vector < Osoba *> tablica; tablica tlum; int Osoba::liczba = 0;
int main() { int n, rok, menu, ile; string imie; do { cout << "====== MENU =====" << endl; cout << "1 --> dodaj osoby" << endl; cout << "2 --> wyswietl wszystkie osoby" << endl; cin >> menu; cout << "================" << endl; cout << endl; switch( menu ) { case 1: cout << "ile osob chcesz dodac: "; cin >> n; cout << endl; for( int i = 0; i < n; i++ ) { tlum.push_back( new Osoba ); tlum[ i ]->WpiszDane( rok, imie ); } system( "cls" ); break; case 2: for( int i = 0; i < tlum.size(); i++ ) { tlum[ i ]->Wypisz(); } break; default: cout << endl; break; } } while( menu != 3 ); return 0; }
|
|
Monika90 |
» 2017-04-15 21:41:32 tlum[ i ]->WpiszDane( rok, imie );
Tutaj wywołujesz WpiszDane nie dla tej osoby dla której chcesz. Żeby wywołać dla ostatnio dodanej osoby napisz: tlum.back()->WpiszDane( rok, imie );
|
|
mikewazowski Temat założony przez niniejszego użytkownika |
» 2017-04-15 21:47:49 działa, dziękuje za pomoc, zamykam |
|
« 1 » |