[C++]Podwójny konstruktor

Awatar użytkownika
alchem
Użytkownik
Użytkownik
Posty: 252
Rejestracja: 10 cze 2014, o 19:10
Płeć: Mężczyzna
Lokalizacja: Wrocław
Podziękował: 83 razy
Pomógł: 5 razy

[C++]Podwójny konstruktor

Post autor: alchem »

Jak napisać dwa konstruktory, które zachowują się różnie w zależności od tego co mu podamy?
Tzn mam takie coś:
Zdefiniuj klasę Trojmian, która będzie modelować trójmian, to znaczy wielomian co najwyżej drugiego stopnia. Wyposaż ją w stosowne konstruktory, między innymi domyślny, ustawiający wszystkie współczynniki na zero, oraz taki, który pozwoli traktować liczby zmiennoprzecinkowe jako takie szczególne przypadki trójmianu, w których jedynie współczynnik stały (przy x0) jest niezerowy.

Mam takie coś:

Kod: Zaznacz cały

#include <iostream>

using namespace std;

class Trojmian
{
   float a_;
   float b_;
   float c_;

public:
Trojmian(float aa  =0 , float bb = 0 , float cc = 0)
:a_(0), b_(0),c_(cc)
{

}

Trojmian(int aa = 0 , int bb = 0 , int cc = 0)
:a_(aa), b_(bb),c_(cc)
{

}

};
Wiem, że to jest źle, ale pokazuje to co mam, np kiedy podaje Trojmian t1 to program nie wie, którego konstruktora użyć, pokaże mi ktoś jak powinny być te dwa konstruktory napisane.
W szczególności nie wiem jak powinny być napisane argumenty tej klasy, int czy float.
Z góry dzięki.
M Maciejewski
Użytkownik
Użytkownik
Posty: 318
Rejestracja: 14 maja 2016, o 16:25
Płeć: Mężczyzna
Lokalizacja: Toruń
Pomógł: 90 razy

[C++]Podwójny konstruktor

Post autor: M Maciejewski »

Jedną z rzeczy, którą można zrobić, to zmienić kolejność wstawiania współczynników i zrobić jeden konstruktor. Wtedy jeśli nie poda się żadnych argumentów, to ustawi współczynniki na 0. Jeśli poda się jeden argument, to ustawi współczynnik c na podaną wartość.

Można też zrobić trzy konstruktory: jeden bezargumentowy, drugi z jednym argumentem obowiązkowym c oraz trzeci z trzema argumentami obowiązkowymi.
Awatar użytkownika
alchem
Użytkownik
Użytkownik
Posty: 252
Rejestracja: 10 cze 2014, o 19:10
Płeć: Mężczyzna
Lokalizacja: Wrocław
Podziękował: 83 razy
Pomógł: 5 razy

[C++]Podwójny konstruktor

Post autor: alchem »

Dzięki, nie myślałem o tym w ten sposób, myślałem że jeśli podam 3 liczby, w których chociaż jedna nie będzie całkowita, to konstruktor przypisze do \(\displaystyle{ c}\) ta podaną, a resztę zeruje.
ODPOWIEDZ