Non ho mai fatto programmazione generica prima, essendo più un tipo pitone, e generalmente usando OOP. Mentre mi sono trasferito nella programmazione generica, ho affrontato alcuni problemi. Ho letto le Domande frequenti , ma non sono soddisfatto. Quello che voglio chiedere sono le seguenti domande (sono principalmente interessato al primo, ma rispondere agli altri sarà estremamente positivo):
La programmazione generica e l'OOP si escludono a vicenda? Ad esempio, si suppone che tu abbia metodi e funzioni che accettano il modello, invece di una classe di base o di una classe pura astratta?
Altre domande che ho, solo per fornire un contesto alla mia mancanza di comprensione sono: in che modo i modelli di progettazione tradizionali reagiscono all'approccio e ai concetti di programmazione generici? Come prevenire (o controllare) la genericità di ogni classe / modello a "esplodere" nelle dipendenze dettate dalla logica del programma, in particolare quando due tipi sono correlati e vanno sempre insieme (ad esempio una classe RealNumberProducer e una doppia rispetto a ComplexNumberProducer e std :: complesso)?