Originariamente inviato da lucagiuliodori8
Per "Ippo343": si effettivamente dando una prima occhiata al problema potresti aver ragione ma se per esempio devo somministrare ad un componente una serie di valori come risultato di un campionamento, risulta scomodo (e sconveniente per le prestazioni) dover chiamare la funzione "applica_tensione" o "applica_corrente" per ogni nuovo valore.
Non sono d'accordo. Se ti interessa il campionamento di un solo componente, allora non è importante, ma se devi campionare il comportamento di tutto il circuito, tensione e corrente si devono propagare agli altri componenti, quindi per ogni ingresso ti serve immediatamente l'uscita, dato che deve andare ad un altro componente. O così, oppure non ho capito il problema ^^
In ogni caso, quello che tu vuoi realizzare con uno stream a me sembra molto più una coda che uno stream.
Poi in teoria di funzione di ingresso ne servirebbe solo una in quanto tensione e corrente sono comunque correlate dalla funzione di trasferimento del componente.
Vero, ma ti serve risolta sia rispetto alla tensione che alla corrente. Se fosse una resistenza, ad esempio:
codice:
class Resistore : public Componente
{
protected:
double R;
public:
Resistore(double resistenza) { R = resistenza; }
virtual void applica_tensione(double tensione) {
_tensione = tensione;
_corrente = tensione / R;
}
virtual void applica_corrente(double corrente) {
_corrente = corrente;
_tensione = corrente * R;
}
};
Vedi che anche se la resistenza ha una sola relazione, ti serve risolta sia rispetto alla corrente che alla tensione.
codice:
Inoltre dovrò anche implementare un componente con più ingressi e una sola uscita ma anche un componente con un solo ingresso e più uscite.
Beh anche i multipoli, anche se sono un po' complicati, hanno pur sempre n relazioni tra i vari morsetti. Perciò ti basterebbe specificare a quali morsetti si applica la tensione o la corrente.