Adi*_*be7 1 c++ inheritance interface
我怎样才能在C++中进行这种推导?(当前示例不起作用)
struct IB
{
};
struct IDerivedB : public IB
{
};
struct IA
{
public:
virtual IB Foo(const string& type) = 0;
};
struct IDerivedA : public IA
{
public:
virtual IDerivedB Foo(const string& type) override = 0;
};
Run Code Online (Sandbox Code Playgroud)
谢谢!
返回类型协方差仅适用于指针和引用,这应该工作:
struct IB
{
};
struct IDerivedB : public IB
{
};
struct IA
{
public:
virtual IB* BuildPresenter(const string& type) = 0;
};
struct IDerivedA : public IA
{
public:
virtual IDerivedB* BuildPresenter(const string& type) override = 0;
};
Run Code Online (Sandbox Code Playgroud)