BOX is printed. The return type of an overriding virtual function must have either the same type as the function it is overriding or both functions must return a pointer or reference with the same cv-qualifications whereby the class pointed or reffered to in the overridden function is an unambiguous and accessible direct or indirect base class of the class pointed or referred to in the overriding function.
std::cout << "SHAPE" << std::endl;
structBox : publicShape
std::cout << "BOX" << std::endl;
Shape* s1 = new Box;
Shape* s2 = s1->duplicate();
Create your playground on Tech.io
This playground was created on Tech.io, our hands-on, knowledge-sharing platform for developers.