Chciałem stworzyć program, który sprawdza, czy podany punkt znajduje się w obrębie podanego prostokąta na układzie współrzędnych. Stworzyłem do tego dwie klasy (Punkt i Prostokat), a także metodę "sedzia".
main:
#include <iostream>
#include <string>
#include "headers.h"
using namespace std;
int main()
{
Punkt punkt("A", 2, 2);
Prostokat prostokat("ABCD", 1, 1, 2, 2);
sedzia(punkt, prostokat);
return 0;
}
headers.h:
#include <iostream>
#include <string>
using namespace std;
class Prostokat;
class Punkt
{
string nazwa;
float x, y;
public:
Punkt(string, float, float);
friend class Prostokat;
};
class Prostokat
{
string nazwa;
float x, y, szer, wys;
public:
Prostokat(string, float, float, float, float);
void sedzia(Punkt pkt, Prostokat p);
};
headers.cpp
#include <iostream>
#include <string>
#include "headers.h"
using namespace std;
Punkt::Punkt(string n, float xx, float yy)
{
nazwa = n;
x = xx;
y = yy;
}
Prostokat::Prostokat(string n, float xx, float yy, float s, float w)
{
nazwa = n;
x = xx;
y = yy;
szer = s;
wys = w;
}
void Prostokat::sedzia(Punkt pkt, Prostokat p)
{
if ((pkt.x >= p.x) && (pkt.x <= p.x + p.szer) && (pkt.y >= p.y) && (pkt.y <= p.y + p.wys))
cout << "Punkt " << pkt.nazwa << " należy do prostokąta " << p.nazwa << endl;
else
cout << "Punkt " << pkt.nazwa << " nie należy do prostokąta " << p.nazwa << endl;
}
Przy próbie kompilacji otrzymuję błąd, że funkcja "sedzia" nie jest zdefiniowana ('sedzia': identifier not found).
Dlaczego tak się dzieje?