Cum se fac 3 constructori cu același strat de semnături în rusă

Trebuie să scrieți un program care să conțină clasa Triunghi. În această clasă ar trebui să existe trei constructori:

  1. Un constructor care are trei laturi.
  2. Un constructor care are două laturi și unghiul dintre ele și calculează a treia parte prin teorema cosinusului.
  3. Un constructor care are două unghiuri și o latură între ele și calculează celelalte părți ale teoremei sine (amintirea teoremei cu privire la suma unghiurilor triunghiului).

Fiecare triunghi trebuie sa-si returneze si zona proprie.







Adică, avem următoarele:

Întreaga problemă este că toți cei trei designeri au aceeași semnătură, dar o logică diferită.
Întrebare: cum să rezolvați această problemă "corect"?

  1. Înlocuirea parametrului (lor) dublu cu șir și a șirului de parsare ulterioară în dublu.
  2. Înlocuiți parametrul (ele) dublu cu float.






Punerea parametrilor într-o matrice:

  • Creează un nou tip de date pentru unghi.
  • presetat 27 Sep '16 la 5:42 am

    Opțiunea 1 - utilizați constructori numiți.

    Un constructor numit este o metodă statică a cărei sarcină este de a crea un obiect cu parametrii specificați. Uneori acestea nu sunt chiar corect numite metode fabricate.

    Opțiunea 2 - folosiți tipurile de date de domeniu

    Definiți tipurile de date "lungime" și "unghi" - și le folosiți în constructori.

    O serie de alternative la cele deja propuse.

    pentru că Alegerea funcției supraîncărcate (și a constructorului) se face pe baza tipurilor, este clar că nu va fi posibil să se creeze mai mulți designeri diferiți cu aceleași semnături.

    Problema poate fi rezolvată prin adăugarea unui parametru suplimentar.

    Se creează noi clase "goale" (numele au fost luate din răspunsul @Argon):

    În acest caz, semnăturile constructorilor vor fi următoarele:

    Se folosește enum enum.

    În acest caz, constructorul va fi singurul cu logică ramificată în interiorul:

    În acest caz, pentru argumentul tip, puteți seta valoarea implicită, dacă se preconizează că aceasta sau acea varianta de construcție triunghi va prevala. De exemplu:







    Articole similare

    Trimiteți-le prietenilor: