c++ абстрактный класс с некоторой реализацией

Я хочу сделать абстрактный класс в c++ с синглом, но с некоторой реализацией по умолчанию. Чтобы каждый класс, который наследует его, имел поведение по умолчанию, но вы не могли создать экземпляр базового класса. Но если я помечаю foo как чисто виртуальный, я не могу добавить к нему реализацию.

class Base
{
public:
    virtual void foo() =0; //Now I can't add foo implementation
};

Моим решением было не делать его чисто виртуальным, а просто скрыть конструктор. Мне интересно, можно ли обозначить класс как чистый, но при этом иметь какую-то реализацию?

5
задан Bg1987 10 January 2012 в 07:53
поделиться