[ 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?
[ Nedeljko @ 05.01.2011. 23:26 ] @
Program je dobar s tim da se *this.x i *this.y moraju zameniti sa this->x i this->y tim redom i da u main.cpp fajlu fali #include <cstdlib> ybog funkcije system().

Možeš ti komotno da da makneš onaj cout kod koga si stavio komentar, s tim da će onda prilikomk pokretanja program očekivati da uneseš četiri broja, bez da je išta ispisao na datu temu.
[ Bootta11 @ 05.01.2011. 23:47 ] @
Stavio sam #include <cstdlib>, sklonio onaj cout i popravio ono sa this ali opet samo se ugasi prog cim se pokrene.I cim opet stavim cout da nesto ispisuje opet radi kako treba.
[ Bootta11 @ 06.01.2011. 00:42 ] @
Problem rijesen. Problem je bio u mom antivirusu. :D
[ Nedeljko @ 06.01.2011. 10:59 ] @
Svašta.