1

可能重复:
派生类和基类之间的指针到指针的转换?
将 Derived** 转换为 Base** 并将 Derived* 转换为 Base*

我有一个 intf + 类

class IList
{
public:
    virtual IList** GetChildList()=0;
    virtual void SetChildList(IList**)=0;
    ~IList();
};

class CList:public IList
{
    CList** m_lst;
public:
    IList** GetChildList()=0;
    virtual void SetChildList(IList**);
//...
};

IList** CList::GetChildList()
{
    return m_lst;
}

为什么我在 GetChildList 中的 MSVC 中收到错误 2440 说“'return':无法从 'CList** **' 转换为 'IList **”

我在这里先向您的帮助表示感谢!

4

1 回答 1

0

CList 派生自 IList,因此您可以将 CList* 转换为 IList*。但是,您不能将 CList** 转换为 IList**。你需要一个 reinterpret_cast。

于 2012-08-09T05:38:45.213 回答