首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

常成员函数内,如其将子类对象的指针作为父类对象的指针返回会报错

2013-09-10 
常成员函数内,如果将子类对象的指针作为父类对象的指针返回会报错?现在有如下代码class BaseA{//...}clas

常成员函数内,如果将子类对象的指针作为父类对象的指针返回会报错?
现在有如下代码

class BaseA
{
    //...
};

class DerivedB : public BaseA
{
    //...
};


class C : public ********
{
public:
    virtual const BaseA * Get() const
    {
        return &m_stDerivedB;    //  C2440; 'return' cannot convert from 'const DerivedB *__w64' to 'const BaseA*'
    }

private:
    DerivedB m_stDerivedB
}


上述代码在 vs2008 vsts中编译有C2440错误。 当函数get 去除 const 属性后,编译通过。 这是何解?
[解决办法]
const 修饰符表示里面的成员变量为只读。
返回时,进行隐式强制类型转换,但是由于要转换的变量为只读,所以转换失效。

热点排行