#include #include using namespace std; class TakistusKomponent{ public: virtual double kysiTakistus()=0; }; class Takisti : public TakistusKomponent{ double takistus; double maxVoimsus; public: Takisti(double t, double v){ takistus=t; maxVoimsus=v; } virtual double kysiTakistus(){return takistus;} double kysiMaxVoimsus(){return maxVoimsus;} double voolVastavaltPingele(double pinge){return pinge/takistus;} }; class JadaYhendus :public TakistusKomponent{ vector takistid; public: void lisaTakistusKomponent(TakistusKomponent *t){ takistid.push_back(t); } virtual double kysiTakistus(){ double summa=0; for(int i=0; ikysiTakistus(); } return summa; } }; //Lisage klass rööpühenduse tarbeks sarnaselt JadaYhendusega class R88pYhendus :public TakistusKomponent{ vector takistid; public: void lisaTakistusKomponent(TakistusKomponent *t){ takistid.push_back(t); } virtual double kysiTakistus(){ double summa=0; for(int i=0; ikysiTakistus(); } return 1/summa; } }; int main(void){ Takisti *lamp=new Takisti(484, 100); Takisti *pesumasin=new Takisti(24, 2000); R88pYhendus *suvila=new R88pYhendus(); suvila->lisaTakistusKomponent(lamp); suvila->lisaTakistusKomponent(pesumasin); JadaYhendus *j=new JadaYhendus(); Takisti *juhtmeTakistus=new Takisti(5, 5000); j->lisaTakistusKomponent(juhtmeTakistus); j->lisaTakistusKomponent(suvila); cout << j->kysiTakistus() << endl; return 0; }