#include <iostream>
using namespace std;
class CCircle2D; //아래 클래스가 존재한다고 알려주기 위해 선언
struct Vector
{
float x, y;
Vector();
Vector(float x, float y);
};
Vector::Vector() { x = 0; y = 0; }
Vector::Vector(float x, float y) { this->x = x; this->y = y; }
class CRectangle2D
{
public:
Vector xy0;
Vector xy1;
CRectangle2D(float x0, float y0, float x1, float y1)
{
this->xy0.x = x0;
this->xy0.y = y0;
this->xy1.x = x1;
this->xy1.y = y1;
}
bool collision(CCircle2D &C)
{
if (xy0.x < C.cen.x && C.cen.x < xy1.x)
{
return true;
cout << "수직영역" << endl;
}
else if (xy0.y < C.cen.y && C.cen.y < xy1.y)
{
return true;
cout << "수평영역" << endl;
}
else
{
return false;
}
}
};
class CCircle2D
{
public:
Vector cen;
float r;
CCircle2D(float cx, float cy, float r)
{
this->cen.x = cx;
this->cen.y = cy;
this->r = r;
}
bool collision(CRectangle2D &Rect)
{
return Rect.collision(*this);
}
};
int main()
{
CRectangle2D Rect(10, 10, 30, 30);
CCircle2D Cir[6] = { CCircle2D(2, 2, 5.6),
CCircle2D(20.5,1.5,7),
CCircle2D(31,9,6),
CCircle2D(20,9,4),
CCircle2D(25,33,5),
CCircle2D(32,32,6) };
Rect.collision(Cir[0]);
return 0;
}
빨간색으로 표시한 부분에서 정의되지 않은 형식을 사용했다고 합니다.
다만 collision함수안의 소스 코드를 모두 주석 처리 할 경우에는 이에 해당하는 에러가 뜨지 않습니다.
음.. 안에 소스 내용중 해당 클래스 부분의 멤버함수를 불러 올 경우에 에러가 나는듯 하는데 ...
해당 클래스가 있다고 선언을 해줬는데도 이를 인식을 못 하는걸까요 ?