Transactional-level modelling (TLM) 1.0 standard used conventional C++ concepts of multiple inheritance.
An SC_MODULE that implements an interface just inherits it.
The sc_port and sc_export constructs are used to wire TLM ports together.
Problem: no standardised structure for payloads.
Problem: no standardised timing annotation mechanism.
Problem: how to have multiple TLM ports on a component with same interface: e.g. a packet router.