[ Bootta11 @ 05.01.2011. 22:07 ] @
Vjezbam polimorfizam u C++.Kompajler ne pokazuje greske ali kada pokrenem program se samo ugasi i nako sto samo ubacim jednu bezveznu cout red i spisem dvije tri rijeci sve radi(ne kontam sta se desava). main.cpp Code: #include <iostream> using namespace std; #include "duz.h" int main(int argc, char *argv[]) { Duz d1; Poligon *p=&d1; d1.ucitaj(); cout<<"\nPrint: "; p->print(); cout<<endl; system("PAUSE"); return 0; } tacka.h Code: #ifndef tacka_h #define tacka_h class Tacka{ protected: double x; double y; public: Tacka(double a=0,double=0); void ispisi(); void read(); double rastojanje(Tacka); }; #endif tacka.cpp Code: #include<iostream> using namespace std; #include<cmath> #include "tacka.h" //konstruktor Tacka::Tacka(double a,double b): x(a),y(b){} //ispis void Tacka::ispisi() { cout<<"("<<x<<","<<y<<")"; } //ucitaj tacku void Tacka::read() { cin>>*this.x; cin>>*this.y; } //rastojanje double Tacka::rastojanje(Tacka b) { double d=0; d=sqrt(pow(abs(x-b.x),2)+pow(abs(y-b.y),2)); return d; } poligon.h Code: #ifndef poligon_h #define poligon_h #include "tacka.h" class Poligon { protected: Tacka *t; public: virtual void print()=0; }; #endif duz.h Code: #ifndef duz_h #define duz_h #include "poligon.h" class Duz: public Poligon { public: Duz(); void print(); void ucitaj(); }; #endif duz.cpp Code: #include<iostream> using namespace std; #include "duz.h" Duz::Duz() { t=new Tacka[2]; } void Duz::print() { t[0].ispisi(); cout<<"-"; t[1].ispisi(); } void Duz::ucitaj() { cout<<"Unesite vr koordinata tacaka:"; // Kada ubacim ovu liniju koda prog radi. Kad je sklonim cim se pokrene prog odmah se i ugasi. t[0].read(); t[1].read(); } Ima li iko ideju sta je u pitanju? |