ㅎㅎ ㅈㅅ~
bool Circle::is_equal(Circle c1, Circle c2){
if (&c1 == &c2) {
return true;
}
else {
return false;
}
}
이 bool 멤버함수를 main에서 result = is_equal(Circle c1, Circle c2) 이런 식으로 result에 변수로 넣고 싶은데
result = is_equal(Circle c1, Circle c2) result = Circle is_equal(Circle c1, Circle c2) result = bool is_equal(Circle c1, Circle c2)
셋 다 오류가 뜨네요 어떤 식으로 넣어야 될까요?ㅠㅠ
result = is_equal( c1, c2)
근데 함수가 왜 주소값을 비교함?ㅇㅅㅇ
Circle* p = new Circle(5.0); Circle* p2 = new Circle(8.0);
위에 두 개를 비교하는 건데 5.0이랑 8.0이랑 같은지
그럼 주소값으로 하는 거 아닌가요?
저걸로 같은 원인지 어떻게 비교함?
1. 멤버 함수인데 파라미터가 두개인 이유가 있음? main에서 쓸거면 bool Circle::is_equal(Circle& c)꼴로 짜서 result = c1.is_equal(c2)로 쓰는게 낫지 않을까 operator==를 오버로드해도 되지만 2. 그리고 같다는 정의가 뭔지 모르겠는데 서로 다른 오브젝트라도 합동이라면 같다고 표현할 거라면 반경이나 직경을 서로 비교하면 될거고 본문처럼 짜는건 두 오브젝트가 같은 주소를 가리킬 때 동일하다고 보는거겠고
근데 사실 주소 비교할거면 본문처럼 짜면 안됨 파라미터에 들어간 오브젝트는 카피본이라 주소가 다름
지금 짜면서도 맞는 건지 뭔지 모르겠네요 정신 나간 듯