Д
Size: a a a
Д
CD
CreateFigure(), которая в зависимости от содержимого входного потока создаёт
shared_ptr<Rect>,
shared_ptr<Triangle>или
shared_ptr<Circle>.
class Circle, class Rect, class Triangleнаследники класса
myClass
shared_ptr<myClass>?
m🇲
m🇲
m🇲
ip
CreateFigure(), которая в зависимости от содержимого входного потока создаёт
shared_ptr<Rect>,
shared_ptr<Triangle>или
shared_ptr<Circle>.
class Circle, class Rect, class Triangleнаследники класса
myClass
shared_ptr<myClass>?
Д
m🇲
m🇲
Д
m🇲
m🇲
Д
Д
m🇲
CD
CD
CD
std::shared_ptr<Shape> f(int x) {
if (x == 0) return std::make_shared<Triangle>();
if (x == 1) return std::make_shared<Square>();
if (x == 2) return std::make_shared<Rectangle>();
return nullptr;
}
m🇲
std::shared_ptr<Shape> f(int x) {
if (x == 0) return std::make_shared<Triangle>();
if (x == 1) return std::make_shared<Square>();
if (x == 2) return std::make_shared<Rectangle>();
return nullptr;
}
ip
std::shared_ptr<Shape> f(int x) {
if (x == 0) return std::make_shared<Triangle>();
if (x == 1) return std::make_shared<Square>();
if (x == 2) return std::make_shared<Rectangle>();
return nullptr;
}