Тогда в плюсах таки есть интерфейсы: абстрактные классы. Они делают именно то, что ты описал.
А еще могут много чего еще, что не имеет отношения к интерфейсам. Так что нет, в плюсах отдельной языковой конструкции для интерфейсов нет. Я не говорю, что она нужна.
Цитата
Кроме того, как минимум в Java/C++/D есть возможность пихать константы в интерфейсы/абстрактные классы. А значит определение интерфейсов в этих языках не соответствует твоему идеализированному определению.
Хороший заход. Но на практике это значит, что просто нужно использовать эту дополнительную возможность разумно. Она вполне может помогать описать интерфейс. Тогда все ок.
Цитата
А интерфейс-то почему не может быть использован в качестве неймспейса?
Потому, что это не имеет никакого отношения к понятию интерфейса.
Цитата
Считай эти константы частью интерфейса
Наверно можно представить себе ситуации, когда это разумно. Но в данном случае это не так. Особенно если речь о том, чтобы делать implements для "импорта" констант в том классе, где мы хотим эти константы юзать. Это очевидно переворачивает все с ног на голову.