Sk_uter Temat założony przez niniejszego użytkownika |
» 2012-09-18 20:07:49 pustego konstruktora dac? i co on niby ma zrobic? |
|
cyklopek11 |
» 2012-09-18 20:12:23 Konstruktorem chcesz wyświetlać dane? Najpierw wpisz coś sensownego do Uczen nowy aby to odczytywać. A więc albo stwórz domniemany konstruktor w klasie Uczen albo stwórz zmienną Uczeń używając swojego jedynego konstruktora. Dopiero później odczytuj. |
|
Katruf |
» 2012-09-18 20:14:15 on jest wywoływany w tym miejscu: Uczen nowy; i on właśnie nic nie robi bo nie podajesz żadnych wartości moim zdaniem to powinno być np: Uczen nowy( "Tomek", "K", 4, 5, 4, 6 ); i wtedy może być bez pustego konstruktora. Edit: #include <iostream> #include <string> using namespace std;
class Uczen { private: string imie, nazwisko; int polski, matematyka, angielski, programowanie; public: Uczen( string i, string n, int p, int m, int a, int pr ) { imie = i; nazwisko = n; polski = p; matematyka = m; angielski = a; programowanie = pr; } void wypisz() { cout << "Imię: " << imie << endl << "Nazwisko: " << nazwisko << endl << "Ocena z j. polskiego: " << polski << endl << "Ocena z matematyki: " << matematyka << endl << "Ocena z j. angielskiego: " << angielski << endl << "Ocena z programowania: " << programowanie << endl; } };
class Uczniowie { private: Uczen * uczniowie_tab[ 3 ]; public: void ustaw() { uczniowie_tab[ 0 ] = new Uczen( "Tomek", "K", 4, 5, 4, 6 ); uczniowie_tab[ 1 ] = new Uczen( "Patryk", "a", 3, 5, 2, 6 ); uczniowie_tab[ 2 ] = new Uczen( "Bolek", "ds", 4, 2, 3, 4 ); } };
int main() { Uczniowie pojedynczy; pojedynczy.ustaw(); Uczen nowy( "Tomek", "K", 4, 5, 4, 6 ); nowy.wypisz(); return 0; } [ / cpp ] tak powinno dzia ł a ć tylko nie wiem po co robisz to: [ cpp ] class Uczniowie { private: Uczen * uczniowie_tab[ 3 ]; public: void ustaw() { uczniowie_tab[ 0 ] = new Uczen( "Tomek", "K", 4, 5, 4, 6 ); uczniowie_tab[ 1 ] = new Uczen( "Patryk", "a", 3, 5, 2, 6 ); uczniowie_tab[ 2 ] = new Uczen( "Bolek", "ds", 4, 2, 3, 4 ); } };
jak i tak z tego nie korzystasz |
|
Sk_uter Temat założony przez niniejszego użytkownika |
» 2012-09-18 20:16:38 tak Twoj sposob dziala, bo SeaMonster131 go podal i wyswietlilo tego uzytkownika, ale ja nie chce ponownie tego pisac bo to zawarte jest w tablicy, chce pobrac tych 3 uczniow z tablicy i je wyswietlic, to moze w nawiasie zamiast pisac dane, mozna jakos odwolac sie do tablicy?
Edit wlasnie to chce wykorzystac zamiast pisac to w glownym programie. |
|
cyklopek11 |
» 2012-09-18 20:22:04 Tak naprawdę to moim zdaniem sam sobie strzeliłeś w kolano. Klasa Uczniowie tak naprawdę nie jest ci potrzebna. Mając tylko klasę Uczen możesz tworzyć sobie tablicę uczniów - statycznie z góry podajesz ile ma ich być albo dynamicznie w trakcie działania programu. A jak wrzucisz obiekty Uczen w std::vector to już masz full wypas. |
|
Sk_uter Temat założony przez niniejszego użytkownika |
» 2012-09-18 20:24:51 czytalem wlasnie cos o tym vectorze, ze to dynamicznie dziala, ale tutaj tak specjalnie to zrobilem, aby zrozumiec dzialanie programowania obiektowego, gdybym stworzyl tabele w glownym programie nie bylo by zadnego problemu, ale ja wlasnie chce specjalnie skorzystac z 2 klas, aby moc bardziej nauczyc sie obiektowki :) |
|
cyklopek11 |
» 2012-09-18 20:33:38 Skoro tak to na Twoim miejscu zmieniłbym: zmienną klasy Uczniowie: Uczen * uczniowie_tab[ 3 ];
na: Uczen * wskaznik_na_dynamiczna_tablice;
+ jakies metody dodaj_ucznia(), usun_ucznia() itd Twoja klasa będzie bardziej funkcjonalna i nie będzie ograniczona liczbą uczniów których może posiadać (taka własna, uproszczona wersja klasy std::vector) To idealne ćwiczenie na "poćwiczenie" "obiektówki" :-) |
|
Sk_uter Temat założony przez niniejszego użytkownika |
» 2012-09-18 20:38:10 Uczen * wskaznik_na_dynamiczna_tablice; Co masz na mysli na dynamiczna tablice? ta moja aktualna nie jest dynamiczna? (mam zdekralowane 3 stale elementy), wiec jak ja zamienic dynamiczna? Wracam za 30min lub jutro zalezy czy sie wyrobie. |
|
1 « 2 » 3 |