Я хочу сделать абстрактный класс в c++ с синглом, но с некоторой реализацией по умолчанию. Чтобы каждый класс, который наследует его, имел поведение по умолчанию, но вы не могли создать экземпляр базового класса. Но если я помечаю foo как чисто виртуальный, я не могу добавить к нему реализацию.
class Base
{
public:
virtual void foo() =0; //Now I can't add foo implementation
};
Моим решением было не делать его чисто виртуальным, а просто скрыть конструктор. Мне интересно, можно ли обозначить класс как чистый, но при этом иметь какую-то реализацию?