Я не могу скомпилировать следующий код, используя г ++ 4.1.2:Как создать базовый класс, который получает ссылочный аргумент?
#include <memory>
class A
{
public:
};
std::auto_ptr<A> GetA()
{
return std::auto_ptr<A>(new A);
}
class B
{
B(std::auto_ptr<A>& pA)
{
}
};
class C : public B
{
C() : B(GetA())
{
}
};
я получаю:
недействительным литая выражения RValue типа
std::auto_ptr<A>
к типуstd::auto_ptr<A>&
Проблема в том, что я не могу определить переменную и передать ее ссылку, потому что я внутри списка инициализации.
Как это сделать, когда мне разрешено изменять класс C
?
Спасибо, что сработало для меня :-) – user1194529