Salut, sunt Serban si acesta este al treizecisitreilea tutorial dintr-o suita de tutoriale ale limbajului C++, tutoriale ce le voi face pentru tutorialevideo.info; In acest tutorial vom aborda clasele si membrii unei clase.
C++ ofera un numar de tipuri de date de baza foarte folositoare, insa uneori nu suficiente pentru nevoile dezvoltatorilor(int, char, long, float, double, byte, etc..). Am invatat in tutorialele trecute ca un programator poate folosi tipuri de date compuse(structuri, enumerari). C++ aduce un nou concept, conceptul de clasa. O clasa in C++ defineste un tip de date, asemanator unei structuri, insa cu mai multa putere si flexibilitate.
Ca si in cazul structurilor, o clasa nu declara memorie, ci doar declara variabile si metode(functii). O greseala frecventa in randul programatorilor la inceput de drum este omiterea `;` la sfarsitul declararii unei clase, ca si a unei structuri de altfel. Pentru a folosi o clasa, trebuie declarata o variabila cu tipul de date acea clasa. Acest lucru se numeste `instantiere` a unei clase. Variabila in sine se numeste `instanta` sau `obiect`.
Pentru ca o clasa sa retina date, e nevoie sa beneficieze de membri. Membrii sunt variabile de diferite tipuri de date, simple sau compuse, ce rezida in interiorul clasei. Ei se pot accesa prin intermediul operatorilor de acces(`.` sau `->` – depinde de caz). Membrii pot fi variabile sau functii. Astfel, o clasa poate retine atat date despre un anumit obiect, cat si actiuni pe care acesta le poate exercita.
#include <iostream>
class Employee
{
public:
char m_strName[25];
int m_nID;
double m_dWage;// Set the employee information
void SetInfo(char *strName, int nID, double dWage)
{
strncpy(m_strName, strName, 25);
m_nID = nID;
m_dWage = dWage;
}// Print employee information to the screen
void Print()
{
using namespace std;
cout << „Name: ” << m_strName << ” Id: ” <<
m_nID << ” Wage: $” << m_dWage << endl;
}
};int main()
{
// Declare two employees
Employee cAlex;
cAlex.SetInfo(„Alex”, 1, 25.00);Employee cJoe;
cJoe.SetInfo(„Joe”, 2, 22.25);// Print out the employee information
cAlex.Print();
cJoe.Print();return 0;
}
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.