Typically you don't put "virtual" with the function body.
You also need the scope operator since you're not in the class body anymore.
IE:
1 2 3 4
std::string Book::AsString() // note: scope operator. No need for "virtual"
{
return _Authors; // no more error here
}
The problem is the compiler is making AsString a global function because you don't give it the Book scope. Since there's no global _Authors, that's why you get that error.