Ce este o clasă?
O clasă C ++ combină datele și metodele de manipulare a datelor într-o singură. Clasele determină și formele obiectelor. Datele și metodele conținute într-o clasă sunt cunoscute ca membri ai clasei. O clasă este un tip de date definit de utilizator. Pentru a accesa membrii clasei, folosim o instanță a clasei. Puteți vedea o clasă ca un plan pentru un obiect.
O clasă să fie un prototip pentru o casă. Arată locația și dimensiunile ușilor, ferestrelor, podelelor etc. Din aceste descrieri, putem construi o casă. Casa devine obiectul. Este posibil să creați multe case din prototip. De asemenea, este posibil să creați multe obiecte dintr-o clasă.
În figura de mai sus, avem un singur prototip de casă. Din acest prototip, am creat două case cu caracteristici diferite.
În acest tutorial, veți învăța:
- Ce este o clasă?
- Exemplu de clasă
- Cuvinte cheie private și publice
- Definirea obiectului
- Accesarea membrilor de date
- Funcțiile membrilor clasei
- Constructori și Distrugători
Declarație de clasă
În C +, o clasă este definită folosind cuvântul cheie de clasă. Aceasta ar trebui să fie urmată de numele clasei. Corpul clasei este apoi adăugat între acolade {}.
Sintaxă:
class class-name{// data// functions};
- Numele clasei este numele care trebuie atribuit clasei.
- Datele sunt datele pentru clasă, declarate în mod normal ca variabile.
- Funcțiile sunt funcțiile clasei.
Cuvinte cheie private și publice
Trebuie să fi dat peste aceste două cuvinte cheie. Sunt modificatori de acces.
- Privat:
Când cuvântul cheie privat este utilizat pentru a defini o funcție sau o clasă, acesta devine privat. Acestea sunt accesibile doar din interiorul clasei.
- Public:
Cuvântul cheie public, pe de altă parte, face publice datele / funcțiile. Acestea sunt accesibile din afara clasei.
Definirea obiectului
Obiectele sunt create din clase. Obiectele de clasă sunt declarate în mod similar cu variabilele declarate. Numele clasei trebuie să înceapă, urmat de numele obiectului. Obiectul tipului de clasă.
Sintaxă:
class-name object-name;
- Numele clasei este numele clasei din care urmează să fie creat un obiect.
- Numele obiectului este numele care trebuie atribuit noului obiect.
Acest proces de creare a unui obiect dintr-o clasă este cunoscut sub numele de instanțiere.
Accesarea membrilor de date
Pentru a accesa membrii publici ai unei clase, folosim operatorul (.) Punct. Aceștia sunt membri marcați cu modificator de acces public.
Exemplul 1:
#includeusing namespace std;class Phone {public:double cost;int slots;};int main() {Phone Y6;Phone Y7;Y6.cost = 100.0;Y6.slots = 2;Y7.cost = 200.0;Y7.slots = 2;cout << "Cost of Huawei Y6 : " << Y6.cost << endl;cout << "Cost of Huawei Y7 : " << Y7.cost << endl;cout << "Number of card slots for Huawei Y6 : " << Y6.slots << endl;cout << "Number of card slots for Huawei Y7 : " << Y7.slots << endl;return 0;}
Ieșire:
Iată o captură de ecran a codului:
Explicatie cod:
- Includeți fișierul antet iostream în codul nostru pentru a-i folosi funcțiile.
- Includerea spațiului de nume std în codul nostru pentru a-și folosi clasele fără a-l apela.
- Declarați o clasă numită Telefon.
- Folosirea modificatorului de acces public pentru a marca variabilele pe care urmează să le creăm ca fiind accesibile publicului.
- Declarați costul variabil al unui tip de date dublu.
- Declarați o variabilă întreagă numită sloturi.
- Sfârșitul corpului clasei.
- Apelarea funcției main (). Logica programului ar trebui adăugată în corpul său.
- Creați un obiect numit Y6 de tip Telefon. Aceasta se numește instanțiere.
- Creați un obiect numit Y7 de tip Telefon. Aceasta se numește instanțiere.
- Accesați costul variabil / membru al clasei Telefon utilizând obiectul Y6. Valoarea este setată la 100,0. Costul Y6 este acum stabilit la 100,0.
- Accesați sloturile variabile / pentru membrii clasei Phone folosind obiectul Y6. Valoarea este setată la 2. Sloturile pentru Y6 sunt acum setate la 2.
- Accesați costul variabil / membru al clasei Telefon utilizând obiectul Y7. Valoarea este setată la 200.0. Costul Y7 este acum stabilit la 200,0.
- Accesați sloturile variabile / pentru membrii clasei Phone folosind obiectul Y7. Valoarea este setată la 2. Sloturile pentru Y7 sunt acum setate la 2.
- Imprimați costul Y6 pe consolă alături de alt text.
- Imprimați costul Y7 pe consolă alături de alt text.
- Imprimați numărul de sloturi pentru Y6 alături de alt text.
- Imprimați numărul de sloturi pentru Y7 alături de alt text.
- Programul trebuie să returneze o valoare după finalizarea cu succes.
- Sfârșitul corpului funcției main ().
Ce este o clasă privată?
Membrii clasei marcați ca privați pot fi accesați numai prin funcții definite în cadrul clasei. Orice obiect sau funcție definită în afara clasei nu poate accesa direct acești membri. Un membru al clasei private este accesat numai de funcțiile de membru și prieten.
Ce este o clasă protejată?
Membrii clasei marcați ca protejați au un avantaj față de cei marcați ca private. Ele pot fi accesate prin funcții din clasa definiției lor. În plus, pot fi accesate din clase derivate.
Exemplul 2:
#includeusing namespace std;class ClassA {public:void set_a(int val);int get_a(void);private:int a;};int ClassA::get_a(void) {return a;}void ClassA::set_a(int val) {a = val;}int main() {ClassA a;a.set_a(20);cout << "Value of a is: " << a.get_a();return 0;}
Ieșire:
Iată o captură de ecran a codului:
Explicatie cod:
- Includeți fișierul antet iostream în codul nostru pentru a-i folosi funcțiile.
- Includeți spațiul de nume std în codul nostru pentru a utiliza clasele sale fără a-l apela.
- Creați o clasă numită ClassA.
- Utilizați modificatorul de acces public pentru a marca membrul clasei care urmează să fie creat ca fiind accesibil publicului.
- Creați funcția numită set_a () care ia o valoare întreagă val.
- Creați o funcție numită get_a ().
- Utilizați modificatorul de acces privat pentru a marca membrul clasei care urmează să fie creat ca acces privat.
- Declarați o variabilă întreagă numită a.
- Sfârșitul corpului clasei.
- Utilizați numele clasei și operatorul de rezoluție a scopului pentru a accesa funcția get_a (). Vrem să definim ce face funcția atunci când este invocată.
- Funcția get_a () ar trebui să returneze valoarea variabilei a atunci când este invocată.
- Sfârșitul definiției funcției get_a ().
- Utilizați numele clasei și operatorul de rezoluție a scopului pentru a accesa funcția set_a (). Vrem să definim ce face funcția atunci când este invocată.
- Atribuirea valorii variabilei val variabilei a.
- Sfârșitul definiției funcției set_a ().
- Apelați funcția main (). Logica programului trebuie adăugată în corpul acestei funcții.
- Creați o instanță a ClassA și dați-i numele a.
- Utilizați instanța de clasă de mai sus și funcția set_a () pentru a atribui o valoare de 20 variabilei a.
- Imprimarea unui text alături de valoarea variabilei a de pe consolă. Valoarea variabilei a se obține apelând funcția get_a ().
- Programul trebuie să returneze valoarea la finalizarea cu succes.
- Sfârșitul corpului funcției main ().
Exemplul 3:
#includeusing namespace std;class ParentClass {protected:int value;};class ChildClass : public ParentClass {public:void setId(int x) {value = x;}void displayValue() {cout << "Value is: " << value << endl;}};int main() {ChildClass c;c.setId(21);c.displayValue();return 0;}
Ieșire:
Iată o captură de ecran a codului:
Explicatie cod:
- Includeți fișierul antet iostream în codul nostru pentru a-i folosi funcțiile.
- Includeți spațiul de nume std în codul nostru pentru a utiliza clasele sale fără a-l apela.
- Creați o clasă numită ParentClass.
- Utilizați modificatorul de acces protejat pentru a marca membrul clasei care urmează să fie creat ca protejat.
- Creați o variabilă întreagă numită valoare.
- Sfârșitul corpului clasei.
- Creați o nouă clasă numită ChildClass care moștenește ParentClass.
- Utilizați modificatorul de acces protejat pentru a marca membrul clasei care urmează să fie creat ca accesibil pentru clasele copil.
- Creați funcția numită setId () care ia o valoare întreagă x.
- Atribuirea valorii variabilei x la valoarea variabilei.
- Sfârșitul definiției funcției setId ().
- Creați o funcție numită displayValue ().
- Imprimați valoarea variabilei numită valoare pe consolă alături de alt text.
- Sfârșitul corpului funcției displayValue ().
- Sfârșitul corpului clasei numite ChildClass.
- Apelați funcția main (). Logica programului trebuie adăugată în corpul acestei funcții.
- Creați o instanță ChildClass și dați-i numele c.
- Utilizați instanța de clasă de mai sus și funcția setId () pentru a atribui o valoare de 21 variabilei x.
- Utilizați instanța de clasă de mai sus pentru a apela funcția numită displayValue ().
- Programul trebuie să returneze valoarea la finalizarea cu succes.
- Sfârșitul corpului funcției main ().
Funcțiile membrilor clasei
Funcțiile ne ajută să manipulăm datele. Funcțiile membrilor clasei pot fi definite în două moduri:
- În interiorul definiției clasei
- În afara definiției clasei
Dacă o funcție urmează să fie definită în afara unei definiții de clasă, trebuie să folosim operatorul de rezoluție a sferei (: :). Aceasta ar trebui să fie însoțită de numele clasei și ale funcțiilor.
Exemplul 2:
#include#include using namespace std;class Guru99{public:string tutorial_name;int id;void printname();void printid(){cout << "Tutorial id is: "<< id;}};void Guru99::printname(){cout << "Tutorial name is: " << tutorial_name;}int main() {Guru99 guru99;guru99.tutorial_name = "C++";guru99.id = 1001;guru99.printname();cout << endl;guru99.printid();return 0;}
Ieșire:
Iată o captură de ecran a codului:
Explicatie cod:
- Includeți fișierul antet iostream în programul nostru pentru a-i folosi funcțiile.
- Includeți fișierul antet șir în programul nostru pentru a utiliza funcțiile sale.
- Includeți spațiul de nume std în codul nostru pentru a utiliza clasele sale fără a-l apela.
- Creați o clasă numită Guru99.
- Utilizați modificatorul de acces public pentru a marca membrii clasei pe care urmează să îi creăm ca fiind accesibili publicului.
- Creați o variabilă șir denumită tutorial_name.
- Creați o variabilă întreagă numită id.
- Creați o funcție numită printname (). Această funcție nu este definită în definiția clasei.
- Creați o funcție numită imprimat (). Această funcție este definită în definiția clasei. Corpul său a fost adăugat în definiția clasei.
- Imprimați valoarea variabilei id alături de alt text de pe consolă. Rețineți că acest lucru a fost adăugat în corpul funcției printid (). Acesta va fi executat numai când se apelează funcția printid ().
- Sfârșitul corpului funcției printid ().
- Sfârșitul corpului clasei Guru99.
- Începutul definiției funcției printname ().
- Imprimați valoarea variabilei tutorial_name pe consolă alături de alt text. Rețineți că acest lucru a fost adăugat în corpul funcției printname (). Acesta va fi executat numai atunci când funcția printname () este apelată.
- Sfârșitul definiției funcției printname ().
- Apelați funcția main (). Logica programului trebuie adăugată în corpul acestei funcții.
- Creați o instanță din clasa Guru99 și dați-i numele guru99.
- Utilizați instanța de mai sus pentru a atribui o valoare C ++ variabilei tutorial_name.
- Utilizați instanța guru99 pentru a atribui o valoare de 1001 variabilei id.
- Utilizați instanța guru99 pentru a apela funcția printname ().
- Apelați comanda de capăt (linie de sfârșit) pentru a imprima o nouă linie goală pe consolă.
- Folosiți instanța guru99 pentru a apela funcția printid ().
- Programul trebuie să returneze valoarea la finalizarea cu succes.
- Sfârșitul corpului funcției main ().
Constructori și Distrugători
Ce este constructorii?
Construcțiile sunt funcții speciale care inițializează obiecte. Compilatoarele C ++ apelează un constructor atunci când creează un obiect. Constructorii ajută la atribuirea de valori membrilor clasei. Desigur, acest lucru se întâmplă după ce li s-a alocat un spațiu de memorie.
Ce este distructorul?
Pe de altă parte, distructorii ajută la distrugerea obiectelor clasei.
Numele constructorului trebuie să fie similar cu numele clasei. Constructorii nu au un tip de returnare.
Constructorul poate fi definit în interiorul sau în afara corpului clasei. Dacă este definit în afara corpului clasei, acesta trebuie definit cu numele clasei și operatorul de rezoluție a domeniului (: :).
Exemplul 3:
#includeusing namespace std;class ClassA {public:ClassA() {cout << "Class constructor called"< Ieșire:
Iată o captură de ecran a codului:
Explicatie cod:
- Includeți fișierul antet iostream în cod pentru a-i folosi funcțiile.
- Includeți spațiul de nume std în codul nostru pentru a utiliza clasele sale fără a-l apela.
- Creați o clasă numită ClassA.
- Utilizați modificatorul de acces public pentru a marca membrul pe care urmează să îl creăm ca accesibil publicului.
- Creați un constructor pentru clasă.
- Text de imprimat pe consolă atunci când este chemat constructorul. Endl este un cuvânt cheie C ++, care înseamnă linie finală. Mută cursorul mouse-ului pe linia următoare.
- Sfârșitul corpului constructorului clasei.
- Creați un destructor pentru clasă.
- Text de imprimat pe consolă atunci când este chemat distructorul. Endl este un cuvânt cheie C ++, care înseamnă linie finală. Mută cursorul mouse-ului pe linia următoare.
- Sfârșitul corpului distructorului.
- Sfârșitul corpului clasei.
- Apelați funcția main (). Logica programului trebuie adăugată în corpul acestei funcții.
- Creați un obiect de clasă și dați-i numele a. Constructorul va fi chemat.
- Creați o variabilă întreagă numită p și atribuiți-i o valoare de 1.
- Creați un bloc de instrucțiuni if folosind variabila p.
- Creați un obiect de clasă și dați-i numele b. Distructorul va fi chemat.
- Sfârșitul corpului afirmației if.
- Sfârșitul corpului funcției main ().
Rezumat:
- C ++ este orientat obiect.
- Clasele formează principalele caracteristici ale C ++ care îl fac orientat spre obiect.
- O clasă C ++ combină datele și metodele de manipulare a datelor într-o singură.
- O clasă este un plan pentru un obiect.
- Clasele determină forma unui obiect.
- Datele și metodele conținute într-o clasă sunt cunoscute ca membri ai clasei.
- Pentru a accesa membrii clasei, ar trebui să utilizați o instanță a clasei.
- Pentru a crea o clasă, folosim cuvântul cheie de clasă.
- Funcțiile membrilor clasei pot fi definite în interiorul sau în afara unei clase.