【发布时间】:2009-02-09 13:25:46
【问题描述】:
我不确定我是否缺少一些基本的东西。但我无法理解为什么编译器会为此代码生成错误:
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;
}
编辑:编译器错误是:error C2440: 'return' : cannot convert from 'const class A *' to 'class A *' Conversion lost qualifiers
【问题讨论】:
-
能否也提供编译器错误?