读书人

常成员函数内如其将子类对象的指针作

发布时间: 2013-09-10 13:42:18 作者: rapoo

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

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 修饰符表示里面的成员变量为只读。
返回时,进行隐式强制类型转换,但是由于要转换的变量为只读,所以转换失效。

读书人网 >C++

热点推荐