Cześć, uczę się programowanie obiektowego u pana Mirosława i chciałem zmienić jeden z programów który pan Mirosław pokazywał, napisałem go i mam problem z prywatnością jednej z klas (klasa Punkt) program nie odpala mi się ponieważ pokazuje, że elementy klasy Punkt są prywatne chociaż chyba nie powinny poniw. Pomoże ktoś? Mój kod:
Main.cpp
#include <iostream>
#include "przyjaciele.h"
using namespace std;
int main()
{
Prostokat p1;
p1.wczytaj();
Punkt pkt1;
pkt1.wczytaj();
p1.sedzia(pkt1,p1);
return 0;
}
przyjaciele.h
#include <iostream>
using namespace std;
class Prostokat;
class Punkt
{
string nazwa;
float x,y;
public:
Punkt(string="a", float=0, float=0);
void wczytaj();
friend void sedzia(Punkt pkt1,Prostokat p1);
};
class Prostokat
{
string nazwa;
float x,y,wysokosc,szerokosc;
public:
Prostokat(string="brak",float=0,float=0,float=1,float=1);
void wczytaj();
void sedzia(Punkt pkt1,Prostokat p1);
};
przyjaciele.cpp
#include <iostream>
#include "przyjaciele.h"
using namespace std;
Punkt::Punkt(string n, float xx, float yy)
{
nazwa=n;
x=xx;
y=yy;
}
void Punkt::wczytaj()
{
cout<<"Wczytywanie punktu!"<<endl;
cout<<"Podaj x: ";
cin>>x;
cout<<"Podaj y: ";
cin>>y;
cout<<"Podaj nazwe punktu: ";
cin>>nazwa;
cout<<endl;
}
Prostokat::Prostokat(string n,float xx,float yy,float w,float s)
{
nazwa=n;
x=xx;
y=yy;
wysokosc=w;
szerokosc=s;
}
void Prostokat::wczytaj()
{
cout<<"Wczytywanie prostokata!"<<endl;
cout<<"Podaj x: ";
cin>>x;
cout<<"Podaj y: ";
cin>>y;
cout<<"Podaj wysokosc: ";
cin>>wysokosc;
cout<<"Podaj szerokosc: ";
cin>>szerokosc;
cout<<"Podaj nazwe prostokata: ";
cin>>nazwa;
cout<<endl;
}
void Prostokat::sedzia(Punkt pkt1,Prostokat p1)
{
if((pkt1.x>=p1.x)&&(pkt1.x<=p1.x+p1.szerokosc)&&(pkt1.y>=p1.y)&&(pkt1.y<=p1.y+p1.wysokosc))
cout<<endl<<"Punkt "<<pkt1.nazwa<<" nalezy do prostokata: "<<p1.nazwa;
else
cout<<endl<<"Punkt "<<pkt1.nazwa<<" nie nalezy do prostokata: "<<p1.nazwa;
}