2014-02-25 3 views
-7

는 다음 클래스 정의도 제대로 작동하려면 호박 클래스에 구현해야합니다 다음과 같은 기능의C++ 연산자 EQUAL

class Pumpkin { 
public: 
Pumpkin(const Pumpkin & other); 
~Pumpkin(); 
    // more public member functions 
private: 
double radius; 
// more private member variables 
}; 

을 고려? (a)에는 파라미터 생성자 (b) 연산자 = (c) 조작자() (d) setRadius (E) 연산자 삭제할위한 호박 클래스도 구현되어야 다음 기능

+5

방금 ​​숙제 질문을하고 질문했습니다. 그렇습니까? – user2357112

+0

@ user3342529 우리와 함께 [시험 문제] (http://stackoverflow.com/questions/22003334/is-the-result-7)를 통과하려고합니까?!? 이걸 멈추거나,이 문제를 바로 잡을 수있는 것보다 더 빨리 질문을 할 수 없게 될 것입니다 ... –

+0

_no parameter constructor_ - 그것을 설명하는 것은 정말 나쁜 방법입니다. _default constructor_ (이것은 무엇을 의미하는지)은 인수없이 호출 할 수있는 생성자로 정의됩니다. 예 :'호박 (int = 0)' –

답변

1

제대로 작동하려면?

글쎄, 물론 수업 시간에 선언 한 것들. 당신이 보여 어떤에서 당신은 확실히 모두 정의해야합니다 :

Pumpkin(const Pumpkin & other); 
~Pumpkin(); 

당신은 우리에게 무해한 double을 보인 이후는 Rule of Three에 따라 어떤 특별한 이유가 표시되지 않습니다. 당신이 어떤 RAII 또는 복사 생성자 및/또는 소멸자를 할 경우

그러나아닌 사소한, 그건 아마도 사건이다. 당신이 C++ (11)을 사용하는 경우 그것은 또한 정의하는 아마 좋은 생각,

Pumpkin& operator=(const Pumpkin&); 

과 :

Pumpkin(Pumpkin&&); 
Pumpkin& operator=(Pumpkin&&); 

즉라는 이동-생성자를하는 경우 당신은 또한 정의해야합니다이동 지정입니다.