Виртуальные интерфейсы могут иметь только один виртуальный интерфейс или экземпляр интерфейса или null, присвоенный ему.
ifs m_ifs() ;
vifs = m_ifs ; // valid
vifs = vifs1 ; // valid
vifs = null (this is the default value if unassigned)
If you mean
vifs = new() or new (if) ;
что-то подобное заявлению выше не допускается.
Вы могли бы сделать это вместо
Class interface_container {
virtual interface ifs vifs ;
} ;
interface_container m_interface_container[2] ;
m_interface_container[0] = new() ;
m_interface_container[1] = new() ;
Так что теперь у вас есть 2 экземпляра VIF внутри экземпляров двух классов, но
вам все равно придется назначить экземпляр интерфейса к ним. Экземпляр интерфейса сам по себе не может быть динамическим, поскольку он представляет физические подключения.
m_interface_container[0].vifs = m_ifs ;
m_interface_container[1].vifs = m_ifs ;
Так может быть много виртуальных интерфейсов, но все виртуальные интерфейсы (если не равно нулю), в конечном счете указывают на некоторый фиксированный набор экземпляров интерфейса.
'if' является зарезервированным ключевым словом. Вы не можете назвать интерфейс с этим ключевым словом. –