Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Pierwszy program pisany obiektowo, blad w kompilacji

Ostatnio zmodyfikowano 2012-09-19 14:08
Autor Wiadomość
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?
P-65167
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.
P-65168
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:
C/C++
#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
P-65169
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.
P-65170
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.
P-65171
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 :)
P-65172
cyklopek11
» 2012-09-18 20:33:38
Skoro tak to na Twoim miejscu zmieniłbym:
zmienną klasy Uczniowie:
C/C++
Uczen * uczniowie_tab[ 3 ];
  na:
C/C++
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" :-)
P-65174
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.
P-65176
1 « 2 » 3
Poprzednia strona Strona 2 z 3 Następna strona