Puoi sostenere che l'OOP si basa sulla programmazione strutturata in generale - quindi sì, sono complementari in tal senso.
Ricorda che i paradigmi di programmazione riguardano principalmente ciò che non fai:
- La programmazione strutturata rimuove rami e salti non vincolati (in modo che il codice venga eseguito in blocchi strutturati ben definiti come
while
loops)
- OOP rimuove il polimorfismo tramite i puntatori di funzione (affidandosi invece a metodi di oggetto e dispacciamento virtuale per ottenere il polimorfismo)
Potresti teoricamente concepire un linguaggio che incoraggi la ramificazione e il salto senza vincoli, ma usi gli oggetti e la spedizione del metodo in stile OOP. Sarebbe quindi OOP ma non strutturato ... tuttavia sarebbe una lingua molto strana. Non sono a conoscenza di qualcosa di simile.