Я работаю в проекте миграции с VC6 на VC9.В VC9 (Visual Studio 2008) я получил ошибку компиляции при передаче константного члена в метод, который принимает ссылку.Он компилируется без ошибок в VC6.
Пример программы:
class A
{
};
typedef CList<A, A&> CAlist;
class B
{
CAlist m_Alist;
public:
const B& operator=( const B& Src);
};
const B& B::operator=( const B& Src)
{
POSITION pos = Src.m_Alist.GetHeadPosition();
while( pos != NULL)
{
**m_Alist.AddTail( Src.m_Alist.GetNext(pos) );**
}
return *this;
}
Ошибка: во время компиляции над программой я получил ошибку
ошибка C2664:'POSITION CList :: AddTail (ARG_TYPE)': невозможно преобразовать параметр 1 из 'const A' в 'A &'
Пожалуйста, помогите мне устранить эту ошибку.