class Shape
{
public:
virtual void Display()
{
cout << "Shape::Display()" << endl;
}
};
class Line : public Shape
{
public:
void Display()
{
cout << "Line::Display()" << endl;
}
};
class Circle : public Shape
{
public:
void Display()
{
cout << "Circle::Display()" << endl;
}
};
1과 같은 클래스) 여기
class Container
{
public:
Container(Shape& shape) : m_Shape(shape)
{
}
void Draw()
{
m_Shape.Display();
}
private:
Shape& m_Shape;
};
그는 참조를 복용하고 기본 클래스 객체에 할당되어있는 고려 나 하나가 선한 알려주세요 .
2) 여기
class ShapeContainer
{
public:
ShapeContainer(Shape* pShape) : m_pShape(pShape)
{
}
void Draw()
{
m_pShape->Display();
}
private:
Shape* m_pShape;
};
그는 포인터를 복용하고 기본 클래스 객체에 할당된다.
내가 perosnally 가능한 포인터를 통해 참조를 사용하여 선호하는 그들에게
참조를 사용하면 기본적으로 '컨테이너'인스턴스를 복사 할 수 없으므로 원하는 의미에 따라 문제가 될 수 있습니다. – ereOn