나는 클래스 모양과 2 개의 파생 클래스를 원과 사각형이라고합니다. 코드는 다음과 같습니다.C++ 한 파생 클래스의 포인터를 다른 파생 클래스로 변환
Shape* s1 = new circle;
이제 저는 두 가지 모두에 공통적 인 변수를 보존하면서 asssigne s1을 사각형으로 만들고 싶습니다.
Shape* s1 = new Square;
어떻게하면됩니까? 원을 사각형으로 변환하는 것은 조금 이상한 것을 잊지 마세요
class Square : public Shape
{
...
public:
Square(const Circle& rhs)
{
// Copy the value you want to keep
// Respect the rules of copy constructor implementation
}
// Even better :
Square(const Shape& rhs)
{
...
}
...
};
: 함께
Shape* s1 = new Circle;
Shape* s1 = new Square(s1);
:
"변수 보존"이란 무엇을 의미합니까? –
그는 "회원"을 의미한다고 생각합니다. 변환 기능을 사용하지 않으면 불가능합니다. 왜 원을 사각형으로 변환하고 싶습니까? –
** ** 그렇게하지 마십시오. "어떻게"는 무의미합니다. –