Reklama
Pokazuje wyniki od 1 do 3 z 3

Temat: [C++] Przeciazanie strumienia w klasach

  1. #1
    Avatar Zabek46
    Data rejestracji
    2007
    Położenie
    Poznań
    Wiek
    31
    Posty
    209
    Siła reputacji
    17

    Domyślny [C++] Przeciazanie strumienia w klasach

    Nizej jest kod ktory nie dziala. Staram sie aby iterator wyswietlil pole i obwod figury ale niestety nie trybi :/ Ktos wie jak to naprawic? Przeciazylem strumien dla klasy kwadrat i prosokat i proboje to zrobic poprzez cout << &it jednak niestety nie dziala ;[


    #ifndef Figura_h
    #define Figura_h

    #include<string>
    #include<iostream>
    using namespace std;
    class figura{
    public:
    figura(){

    }
    ~figura(){
    }
    virtual string getNazwa(){
    return nazwa;
    }
    virtual double obwod(){
    return 0;
    }
    virtual double pole(){
    return 0;
    }
    virtual figura getData(){
    figura ob;
    return ob;
    }
    virtual void wyswietl(){
    cout << getNazwa() << ", Obwod: " << obwod() << ", Pole: " << pole() << endl;
    }
    protected:
    string nazwa;

    };

    #endif

    #ifndef kwadrat_h
    #define kwadrat_h

    #include"Figura.h"
    class kwadrat : public figura{
    private:
    double a;
    public:
    kwadrat(){
    nazwa = "Kwadrat domyslny";
    }
    kwadrat(double a, string name){
    this->a = a;
    this->nazwa = name;
    }
    ~kwadrat(){}

    virtual double obwod(){
    return 4*a;
    }
    virtual double pole(){
    return a*a;
    }
    virtual string getNazwa(){
    return nazwa;
    }
    virtual figura getData(){
    cin >> a;
    cin >> nazwa;
    kwadrat kwadzio(a,nazwa);
    return kwadzio;
    }
    virtual void wyswietl(){
    cout << getNazwa() << ", Obwod: " << obwod() << ", Pole: " << pole() << endl;
    }
    friend ostream & operator <<(ostream * out, kwadrat &sample);

    };


    ostream &operator << (ostream &out, kwadrat &sample){
    out << "Pole kwadratu wynosi " << sample.pole() << ", a obwod: " << sample.obwod() << endl;
    return out;
    }
    #endif

    #ifndef prosokat_h
    #define prosokat_h
    #include"Figura.h"

    class prostokat : public figura{
    public:
    prostokat(){
    nazwa = "Prostokat";
    }
    prostokat(double a, double b, string name){
    this->a = a;
    this->b = b;
    this->nazwa = name;
    }
    ~prostokat(){}
    virtual double obwod(){
    return (2*a)+(2*b);
    }
    virtual double pole(){
    return a*b;
    }
    virtual string getNazwa(){
    return nazwa;
    }
    virtual figura getData(){
    cin >> a;
    cin >> b;
    cin >> nazwa;
    prostokat prostokacik(a,b,nazwa);
    return prostokacik;
    }

    virtual void wyswietl(){
    cout << getNazwa() << ", Obwod: " << obwod() << ", Pole: " << pole() << endl;
    }
    friend ostream & operator << (ostream & out, prostokat &sample);
    private:

    double a,b;

    };
    ostream & operator << (ostream & out, prostokat &sample){
    out << "Pole wynosi " << sample.pole() << ", natomiast obwod " << sample.obwod() << endl;
    return out;
    }

    #endif
    #ifndef Header_h
    #define Header_h

    #include"prostokat.h"
    #include"Figura.h"
    #include"kwadrat.h"
    #include<vector>
    #include<iterator>
    class BazaFigur{
    public:
    BazaFigur(){}
    ~BazaFigur(){

    }
    void dodajKwadrat(){
    kwadrat *kwadzio;
    kwadzio->getData();
    dodajFigure(kwadzio);
    }
    void dodajProsokat(){
    prostokat *prosokat;
    prosokat->getData();
    dodajFigure(prosokat);
    }
    void dodajFigure(figura *nowa){
    Baza.push_back(nowa);
    }
    void czytej(){
    int ile = Baza.size();
    vector<figura*>::iterator it;
    for(it=Baza.begin();it!=Baza.end();++it){
    cout << &it;
    }
    }
    private:
    vector<figura*> Baza;


    };

    #endif

    #include"Header.h"
    #include<iostream>
    #include<string>
    using namespace std;

    void main(){
    BazaFigur nowa;
    kwadrat *kwadzio = new kwadrat();
    kwadzio->getData();
    prostokat *prostokont = new prostokat();
    prostokont->getData();
    nowa.dodajFigure(kwadzio);
    nowa.dodajFigure(prostokont);
    nowa.czytej();

    cin.ignore(2);
    }
    Kod PHP:
    Jesteście żałośni, ale co można się spodziewać po ludziach wychowanych w Carlin w Tibii.

  2. #2
    Avatar Gray
    Data rejestracji
    2007
    Położenie
    Gdańsk
    Posty
    2,847
    Siła reputacji
    18

    Domyślny

    Wrzuć jeszcze raz tylko z ogarniętymi wcięciami bo się tego czytać nie da.

  3. Reklama
  4. #3
    Avatar Zabek46
    Data rejestracji
    2007
    Położenie
    Poznań
    Wiek
    31
    Posty
    209
    Siła reputacji
    17

    Domyślny

    Prosze usunac temat, poradzilem sobie juz. Sorry za brak wciec ale kodzilem 4h non stop (nie tylko to zeby ktos nie pomyslal xDD)
    Kod PHP:
    Jesteście żałośni, ale co można się spodziewać po ludziach wychowanych w Carlin w Tibii.

Reklama

Informacje o temacie

Użytkownicy przeglądający temat

Aktualnie 1 użytkowników przegląda ten temat. (0 użytkowników i 1 gości)

Podobne tematy

  1. [c++]Przeciążanie operatorów - mała pomoc
    Przez Pumpkin w dziale Programowanie
    Odpowiedzi: 4
    Ostatni post: 28-04-2014, 11:18

Zakładki

Zakładki

Zasady postowania

  • Nie możesz pisać nowych tematów
  • Nie możesz pisać postów
  • Nie możesz używać załączników
  • Nie możesz edytować swoich postów
  •