Salut, sunt Serban si acesta este al treizecisisaselea tutorial dintr-o suita de tutoriale ale limbajului C++, tutoriale ce le voi face pentru tutorialevideo.info; In acest tutorial vom vorbi despre constructori.
Probabil nu este prima oara cand auziti despre constructori. Ei exista in toate limbajele ce suporta paradigma OOP, cum ar fi C++, Java, Python, etc. Un constructor este un membru special al unei clase in C++. Este o functie ce nu intoarce nimic, dar nu este declarat nici cu tipul de date `void` la inceput. Scopul sau este acela de a initializa membrii, sau o parte din acestia, ai unei clase cu valori predefinite sau cu valori la alegerea programatorului.
Constructorul, fiind o functie, poate primi parametri ce pot insemna valori pentru variabilele membre ale clasei. Un constructor fara parametri se cheama `Default Constructor`. Este denumit `default` din cauza ca daca programatorul nu declara un constructor pentru clasa sa, atunci compilatorul va declara pentru el un constructor fara parametri si fara corp. Deci va fi doar o constructie de genul `MyConstructor() {}`.

#Class with default constructor
class Fraction
{
private:
int m_nNumerator;
int m_nDenominator;

public:
Fraction() { // default constructor
m_nNumerator = 0;
m_nDenominator = 1;
}

int GetNumerator() { return m_nNumerator; }
int GetDenominator() { return m_nDenominator; }
double GetFraction() { return static_cast(m_nNumerator) / m_nDenominator; }
};

#include
class Fraction
{
private:
int m_nNumerator;
int m_nDenominator;
double a1;
double a2;

public:
Fraction() // default constructor
{
m_nNumerator = 0;
m_nDenominator = 1;
}

Fraction(double A1, double A2) {
assert(A2 != 0);
a1 = A1;
a2 = A2;
}

// Constructor with parameters
Fraction(int nNumerator, int nDenominator = 1)
{
assert(nDenominator != 0);
m_nNumerator = nNumerator;
m_nDenominator = nDenominator;
}

int GetNumerator() { return m_nNumerator; }
int GetDenominator() { return m_nDenominator; }
double GetFraction() { return static_cast(m_nNumerator) / m_nDenominator; }
double GetFraction2() { return static_cast(a1) / (a2); }
};

NU uitati: cititi si documentati-va in plus, nu parcurgeti _doar_ aceste tutoriale pentru ca nu sunt indeajuns pentru a va dezvolta calitatile de coding, ci sunt doar mici rampe de lansare catre cunoastere.Dupa fiecare tutorial vizionat, abordati subiectul dezbatut in acesta pe net, in cartea `Thinking in C++`,

in sectiunea de comentarii.

NU lasati sa treaca pe langa voi o informatie neclara, pentru ca orice farama de cunoastere este importanta.

Lasă un răspuns

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *