Hai fatto un bel po' di confusione ... č poco utile riprendere errore per errore in ogni linea ... (uno per tutti ... per calcolare il quadrato hai usato l'operatore ^ del BASIC ... che in C vuol dire altro ...).
Ti riporto il codice corretto delle varie parti ...
codice:#ifndef QUADRILATERO_HPP #define QUADRILATERO_HPP class Quadrilatero { protected: int l1; int l2; int l3; int l4; int area; int perimetro; public: Quadrilatero(int l1, int l2, int l3, int l4); void setArea(); int getArea(); void setPerimetro(); int getPerimetro(); }; #endif /* QUADRILATERO_HPP */
codice:#ifndef QUADRATO_HPP #define QUADRATO_HPP #include "Quadrilatero.h" class Quadrato : public Quadrilatero { public: Quadrato(int lato); void setArea(); int getArea(); void setPerimetro(); int getPerimetro(); }; #endif /* QUADRATO_HPP */
codice:#include "Quadrilatero.h" Quadrilatero::Quadrilatero(int primo, int secondo, int terzo, int quarto) { l1=primo; l2=secondo; l3=terzo; l4=quarto; setArea(); setPerimetro(); } void Quadrilatero::setArea() {} int Quadrilatero::getArea() {return area;} void Quadrilatero::setPerimetro() {perimetro=l1+l2+l3+l4;} int Quadrilatero::getPerimetro() {return perimetro;}
codice:#include "Quadrato.h" Quadrato::Quadrato(int lato):Quadrilatero(lato, lato, lato, lato) { setArea(); setPerimetro(); } void Quadrato::setArea() {area=l1*l1;} int Quadrato::getArea() {return area;} void Quadrato::setPerimetro() {perimetro=l1*4;} int Quadrato::getPerimetro() {return perimetro;}
codice:#include <cstdio> #include "Quadrato.h" int main(int argc, char** argv) { int number=5; Quadrilatero *q=new Quadrato(number); int Area=q->getArea(); int Perimetro=q->getPerimetro(); printf("Il lato del quadrato č %d\n", number); printf("L' area č %d\n",Area); printf("Il perimetro č %d\n", Perimetro); return 0; }

Rispondi quotando