Cześć,
Chciał bym napisać konstruktor do mojej klasy, który w jednej linijce "zawiera" 5 innych konstruktorów (mam tu na myśli, że zawiera konstruktor jedno argumentowy z samym imieniem, dwu argumentowy z imieniem i nazwiskiem itd.) i jego wywołania mogą wyglądać różnie np tak
vector<pair<string, float>> ocenki;
cStudent s("Adam", "Nowak", 1999, "m", ocenki);
cStudent s("Adam", "Nowak", 1999, "m");
cStudent s("Adam", "Nowak", 1999);
cStudent s("Adam", "Nowak");
To jest moja klasa...
class cStudent {
//atrubuty
string imie;
string nazwisko;
int rok_urodzenia;
string plec;
vector<pair<string, float>> oceny;
}
Na razie udało mi się zrobić dwa rodzaje konstruktorów taki...
cStudent::cStudent() {
imie = "Jan";
nazwisko = "Kowalski";
rok_urodzenia = 2000;
plec = "m";
oceny = {};
}
oraz taki...
cStudent::cStudent(string _imie, string _nazwisko, int _rok_urodzenia, string _plec, vector<pair<string, float>> _oceny) {
nazwisko = _nazwisko;
imie = _imie;
rok_urodzenia = _rok_urodzenia;
plec = _plec;
oceny = _oceny;
}
ten o którym mówię (ten trzeci) powinien chyba wyglądać jakoś tak
cStudent() :imie("Jan"), nazwisko("Kowalski"), rok_urodzenia(2000), plec("m"), oceny({}) {};
taki oto konstruktor(albo podobny bo w tym jest chyba błąd), powinien działać również jako konstruktor domyślny o ile się nie mylę.
Chciałem również zapytać jak będzie wyglądać deklaracja paru ocen w wektorze par stringów i floatów w konstruktorze na wypadek gdybym jednak nie chciał mieć pustego wektora i już na samym starcie "wlepić" jakiemuś studentowi np 5.0 z matematyki