게시판 즐겨찾기
편집
드래그 앤 드롭으로
즐겨찾기 아이콘 위치 수정이 가능합니다.
C++ 불완전 클래스 선언 이후 ...
게시물ID : programmer_18978짧은주소 복사하기
작성자 : 하린
추천 : 0
조회수 : 762회
댓글수 : 2개
등록시간 : 2016/11/13 23:57:10
옵션
  • 외부펌금지
#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함수안의 소스 코드를 모두 주석 처리 할 경우에는 이에 해당하는 에러가 뜨지 않습니다.
음.. 안에 소스 내용중 해당 클래스 부분의 멤버함수를 불러 올 경우에 에러가 나는듯 하는데 ...
해당 클래스가 있다고 선언을 해줬는데도 이를 인식을 못 하는걸까요 ?
전체 추천리스트 보기
새로운 댓글이 없습니다.
새로운 댓글 확인하기
글쓰기
◀뒤로가기
PC버전
맨위로▲
공지 운영 자료창고 청소년보호