gpt4 book ai didi

c++ - 在 C++ 中向下思考

转载 作者:行者123 更新时间:2023-11-30 03:21:17 25 4
gpt4 key购买 nike

<分区>

我有下一个代码

class Shape 
{
public:
virtual Shape* create() { return new Shape; }
virtual void print() { cout << "Shape" << endl; }
virtual ~Shape() {}
};

class Circle : public Shape
{
public:
virtual Circle* create() { return new Circle; }
virtual void print() { cout << "Circle" << endl; }
};

void foo ()
{
Shape* sp = new Circle;
Circle* cp = sp->create();
cp->print();
delete sp;
delete cp;
}

代码未编译,因为 Shape 不是 Circle(向下转换错误)。

我有点懵。 create() 不是动态绑定(bind)?线路

Circle* cp  = sp->create();  

不应该返回 Circule*?

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com