Скажем, у меня есть два класса:
class A
{
public:
A* Hello()
{
return this;
}
}
class B:public class A
{
public:
B* World()
{
return this;
}
}
И пусть скажем, что у меня есть экземпляр класса B
:
B test;
Если я вызываю test.World()->Hello()
, это будет работать нормально.
Но test.Hello()->World()
не будет работать, поскольку Hello()
возвращает A
тип.
Как я могу сделать Hello()
вернуть тип B
? Я не хочу использовать функцию virtual
, так как у нас есть более 20 разных классов, наследующих A
.