열혈강의 C++교재의 생성자를 이용해서 원과 직사각형의 넓이와 둘레 구하는 연습문제를 하다가
원주율 값을 #define로 해서 정의 했는데 컴파일할때 에러가 나는군요.
(sqr=PI*PI*_radius;부분에서 간접 참조가 잘못되었습니다. 라고 나옵니다.)
아무리 생각해도 #define로 정의한 PI값을 클래스 내부에서 사용할때 컴파일에러가 나는 이유를 도무지 모르겠네요.
#define는 클래스 내부에서 사용하면 안되나요?
그렇지 않고 #define문의 사용이 가능하다면 아래의 소스에서 어떻게 해야 사용할 수 있는지 가르쳐 주신다면 정말로 좋겠습니다.
#include <iostream>
#define PI 3.14;
using std::cout;
using std::endl;
const int SIZE=20;
class Rectangle
{
int sqr;
int cir;
public:
Rectangle(int _heigh,int _width)
{
sqr=_heigh*_width;
cir=2*(_heigh+_width);
}
// ~Rectangle();
int GetArea()
{
return sqr;
}
int GetGirth()
{
return cir;
}
};
class Circle
{
float sqr;
float cir;
public:
Circle(float _radius)
{
sqr=PI*PI*_radius;
cir=PI*2*_radius;
}
float GetArea()
{
return sqr;
}
float GetGirth()
{
return cir;
}
};
int main()
{
Rectangle rec(3,4);//Rectangle rec(가로 길이,세로 길이)
cout<<"면적"<<rec.GetArea()<<endl;
cout<<"둘레"<<rec.GetGirth()<<endl;
Circle cir(5.23)
cout<<"면적"<<cir.GetArea()<<endl;
cout<<"둘레"<<cir.GetGirth()<<endl;
return 0;
}