ArtifeX Opublikowano 16 Maja 2005 Zgłoś Opublikowano 16 Maja 2005 Witam mam problem z tym programikiem. Tresc zadania: Stwórz klase Figura, zawierajaca pola (typu protected) podstawa i wysokosc, metody dostepu do tych pól oraz metode przecazajaca operator <<, do wyswietlania obiektów tej klasy poprzez strumien wyjsciowy. Nastepnie stwórz dwie klasy pochodne od klasy Figura {Trojkat i Kwadrat. Klasy te maja zawierac po dwa konstruktory, a takze przeciazane odpowiednio operatory +, -, *, /. Dodanie dwóch figur polega na dodaniu do siebie pól tychze figur - analogicznie pozostale operacje. A to co wykombinowalem, nie wiem jak pozbyc sie bledow i do czego sie rzuca kompilator. Jak mam powniez jak w tresci zadania dodac obie figury i wyswietlic #include <iostream>#include <stdlib.h>using namespace std; class Figura{ protected: int podstawa; int wysokosc; public: Figura(){ setPodstawa(0); setWysokosc(0); } Figura operator+(Figura p); friend ostream& operator<<(ostrem& os, Figura p); int getPodstawa(); int getWysokosc(); void setPodstawa(int podstawa); void setWysokosc(int wysokosc);}; Figura::Figura operator+(Figura p){ return Figura(getPodstawa()+p.getPodstawa(),getWysokosc()+p.getWysokosc()); } ostream& operator<<(ostream& os, Figura p){ os<<"Podstawa=" << p.getPodstawa()<< "\t Wysokosc="<<p.getWysokosc(); } Figura::int getPodstawa(){ return podstawa; } Figura::int getWysokosc(){ return wysokosc; } Figura::void setPodstawa(int podstawa){ this->podstawa=podstawa; } Figura::void setWysokosc(int wysokosc){ this->wysokosc=wysokosc; } class Trojkat : public Figura { Trojkat(){ int poleT=wysokosc*podstawa; } Trojkat(){ } friend ostream& operator+(ostrem& os, Figura p); friend ostream& operator-(ostrem& os, Figura p); friend ostream& operator*(ostrem& os, Figura p); friend ostream& operator/(ostrem& os, Figura p); }; class Kwadrat : public Figura { Kwadrat(){ int poleK=wysokosc*podstawa; } Kwadrat(){ } friend ostream& operator+(ostrem& os, Figura p); friend ostream& operator-(ostrem& os, Figura p); friend ostream& operator*(ostrem& os, Figura p); friend ostream& operator/(ostrem& os, Figura p); }; int main(){ system("PAUSE"); return 0;} Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...
m4r Opublikowano 18 Maja 2005 Zgłoś Opublikowano 18 Maja 2005 (edytowane) może na początek zamień ostrem& na ostream& :?: No i jeszcze może #include <iostream> na #include <iostream.h> ... Kwadrat(){ int poleK=wysokosc*podstawa; } Kwadrat(){ } friend ostream& operator+(ostrem& os, Figura p); friend ostream& operator-(ostrem& os, Figura p); friend ostream& operator*(ostrem& os, Figura p); friend ostream& operator/(ostrem& os, Figura p); 2 takie same funkcje, robiące co innego... Może miał być destruktor, czyli ~Trojkat()? //mogę się mylić, bo dawno nie miałem cpp Edytowane 18 Maja 2005 przez MareCeK Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...