Numerowanie/iteracja obietków

0

Cześć, na wstępie zaznaczę, że jestem początkujący w programowaniu obiektowym i prosiłbym o wyrozumiałość. Stworzyłem 3 takie obiekty:

#include "utwor.h"
 class odtwarzacz
 {
 public:
    utwor nr1 = utwor(1,"Salt", "Ava Max");
    utwor nr2 = utwor(2,"In my bones", "Ray Dalton");
    utwor nr3 = utwor(3,"Pestki", "Natalia Szroeder");
 };
 class utwor
 {
 public:
    std::string nazwa;
    std::string autor;
    int numer;
    utwor(int n, std::string a="" , std::string b="")
    { 
    nazwa = a;
    autor = b;
    numer = n;   
     };
 };

Chciałbym teraz stworzyć metodę w klasie odtwarzacz, która będzie, na podstawie numeru podanego w mainie, wyswietlała nazwa utworu i autora. Problem w tym, że nie wiem jak się do tego zabrać.
Chodzi mi mniej więcej o taką metodę:

void odtwarzacz::Inf_utwor(int num)
{
// na podstawie 'num' ma wyswietlac informacje o tym obiekcie, który ma numer równy zmiennej num.
    cout << endl << "utwor nr: " << nr1.numer<<endl;;
    cout<<nr1.nazwa<<endl;
    cout<<nr1.autor<<endl;
   
}

Kolejne pytanie, czy da się jakoś za pomocą pętli wyświetlić informacje o tych utworach? Czy muszę to robić w ten sposób:

void odtwarzacz::playlist()
{
   cout << "Lista utworow: " << endl;
   cout << nr1.numer << ". " << nr1.nazwa <<  endl;
   cout << nr2.numer << ". " << nr2.nazwa << endl;
   cout << nr3.numer << ". " << nr3.nazwa << endl;
}

Z góry dzięki za pomoc.

0

Użyj tablicy (albo lepiej vectora) do trzymania utworów zamiast osobnych zmiennych. Dzięki temu iteracja i dodawanie nowych będzie trywialne. Ponadto, deklaracja klasy to średnie miejsce na przypisanie wartości zmiennym.

0
kq napisał(a):

Użyj tablicy (albo lepiej vectora) do trzymania utworów zamiast osobnych zmiennych. Dzięki temu iteracja i dodawanie nowych będzie trywialne. Ponadto, deklaracja klasy to średnie miejsce na przypisanie wartości zmiennym.

Lepiej by było gdybym przypisywał wartości zmiennym w mainie? Czy może w pliku .cpp klasy?

0

W sumie to zależy co chcesz osiągnąć, ale zauważ, że te wartości przypisujesz dla każdego obiektu tego typu, co tutaj wydaje się bezzasadne. Więc owszem, bym tworzył osobno, a dodawał do listy osobno.

1 użytkowników online, w tym zalogowanych: 0, gości: 1