Как мы все знаем, некоторые языки имеют понятие интерфейсов. Это Java:
public interface Testable {
void test();
}
Как я могу достичь этого на С++ (или С++ 11) самым компактным способом и с небольшим шумом кода? Я был бы признателен за решение, для которого не требуется отдельное определение (пусть заголовок будет достаточным). Это очень простой подход, который даже я нахожу багги;-)
class Testable {
public:
virtual void test() = 0;
protected:
Testable();
Testable(const Testable& that);
Testable& operator= (const Testable& that);
virtual ~Testable();
}
Это только начало.. и уже дольше, что я бы хотел. Как его улучшить? Возможно, есть базовый класс где-то в пространстве имен std, сделанном именно для этого?