"Konstruktor musi mieć
przynajmniej jeden parametr domyślny ustawiający wartość jakiegoś pola klasy" dostałem takie polecenie, ale nie bardzo rozumiem co mam zrobić
co to znaczy parametrt domyślny konstruktora? Jak funkcja może mieć parametr domyślny bo nie rozumiem

- Rejestracja:prawie 9 lat
- Ostatnio:ponad rok
- Postów:534
0

- Rejestracja:ponad 11 lat
- Ostatnio:14 dni
- Lokalizacja:Kraków
- Postów:1694
0
No tak jak tutaj gość pokazał:
https://stackoverflow.com/questions/3393824/how-do-i-specify-default-argument-values-for-a-c-constructor
a tutaj masz jeszcze lepiej wytłumaczone:
http://en.cppreference.com/w/cpp/language/default_arguments
edytowany 1x, ostatnio: szweszwe

- Rejestracja:prawie 9 lat
- Ostatnio:ponad rok
- Postów:534
0
#include <iostream>
using namespace std;
class samochod {
public:
int stan, paliwo, spalanie, pojemnosc_baku, przebieg;
int uruchom_silnik();
void zatrzymaj_silnik();
int jedz(unsigned);
void tankuj(int);
void prezentuj();
samochod(int domyslny = 0) //##########
: stan(domyslny)
, paliwo(100)
, spalanie(10)
, pojemnosc_baku(200)
, przebieg(1500)
{
cout << "Start(domyslny)\n";
prezentuj();
};
samochod(int stan_, int paliwo_, int spalanie_, int pojemnosc_baku_,
int przebieg_)
: stan(stan_)
, paliwo(paliwo_)
, spalanie(spalanie_)
, przebieg(przebieg_)
, pojemnosc_baku(pojemnosc_baku_)
{
cout << "Start:\n";
prezentuj();
}
samochod(const samochod& kopia_sam)
: stan(0)
, paliwo(pojemnosc_baku)
{
cout << "Kopia car\n";
}
~samochod() { cout << "koniec"; }
};
int main(int argc, char** argv)
{
string wybor;
samochod car1(1); //tutaj
samochod car(0, 200, 20, 1000, 2300);
samochod car_copy(car);
}
czy to co zrobiłem z domyślnym parametrem jest poprawną operacją? <działa prawidłowo>

- Rejestracja:ponad 7 lat
- Ostatnio:ponad 5 lat
- Postów:472
0
Dzięki domyślnym parametrom konstruktora można mieć dwa w jednym (domyślny i parametryczny).
#include <iostream>
#include <string>
#include <sstream>
class foo
{
public:
foo(int x = 1, int y = 2) : x_{ x }, y_{ y } {}
std::string to_string()
{
std::ostringstream oss;
oss << x_ << " : " << y_;
return oss.str();
}
private:
int x_;
int y_;
};
int main()
{
foo default_object;
foo parameter_object{ 10, 20 };
std::cout << default_object.to_string() << '\n' << parameter_object.to_string() << std::endl;
}
Zarejestruj się i dołącz do największej społeczności programistów w Polsce.
Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.