1. Название -- это title, а не titel
2. За каждым new должен следовать delete. Лучше обернуть Audioformat* в std::unique_ptr, который делает delete сам:
#include <memory>
std::unique_ptr<Audioformat> af(new Audioformat(""));
af->info(); af->title();
// Не нужен delete :D
3. Методы, которые можно вызывать через указатель на базовый класс, должны быть объявлены как virtual. Если содержание методов базового класса не имеет смысла (как здесь), то лучше объявить как чисто виртуальные:
class Audioformat {
public:
virtual string info() = 0;
};
class MP3_Format : public Audioformat {
public:
string info() override { return "MP3"; }
};
override не обязателен, но крайне желателен.
4. Виртуальный деструктор:
class Audioformat {
public:
virtual ~Audioformat() {}
};