我不确定我是否缺少一些基本的东西。但我无法理解为什么编译器会为此代码生成错误:
class A
{
};
class B
{
public:
B();
A* get() const;
private:
A* m_p;
};
B::B()
{
m_p = new A;
}
A* B::get() const
{
//This is compiling fine
return m_p;
}
class C
{
public:
A* get() const;
private:
A m_a;
};
A* C::get() const
{
//Compiler generates an error for this. Why?
return &m_a;
}
编辑:编译器错误是:错误 C2440:'return':无法从 'const class A *' 转换为 'class A *' 转换丢失限定符