В основном просто добавьте const впереди,
const A* C::get() const
{
//Compiler generates an error for this. Why?
return &m_a;
}
Тогда, если вы хотите получить к нему доступ, в основном выполните:
C something;
const A* a = something.get();
Однако твоя программа имеет для меня очень мало смысла.
ИМО, наиболее разумно было бы сделать:
class A{
};
class C : public A
{
};
Таким образом, вам не нужно делать «get», который возвращает экземпляр A.