Народ, тольк не посылайте к стандарту

.
Насколько я помню отличие структур от классов в том, что в структуре по умолчанию все поля и методы public в классе - private и структуры не поддерживаю наследования, в отличие от классов. Если кто что дополнит, будет неплохо.
Но вопрос вот в чем. В Visual C++ можно наследоваться от структуры. Если работать с СОМ, то там есть слово такое заветное interface, которое не что иное как следующее
#define interface struct
И потом в длальнейшем можно делать так
class MyClass:public IMath //IMath объявлен как интерфейс, а по сути структура
Это что, отклонение от стандарта С++ или это я что-то путаю и не понимаю?