Constructor în C - Utilizări și tipuri de constructor cu exemple

Cuprins:

Anonim

Introducere despre constructor în C

Un constructor în C este utilizat în gestionarea memoriei de programare C ++. Permite tipuri de date încorporate, precum tipuri de int, float și tipuri de date definite de utilizator, cum ar fi clasa. Constructorul în programarea orientată pe obiect inițializează variabila unui tip de date definit de utilizator. Constructorul ajută la crearea unui obiect. Numele constructorului este același cu numele obiectului, dar nu are un tip de returnare. Un constructor este executat automat atunci când este creat un obiect sau membru special. Alocă memoria pentru noul obiect creat și poate fi supraîncărcat.

Cod

// class with Constructor
class integer
(
int a, b;
public:
integer (void);
// declaration of Constructor
);
integer :: integer (void)
// constructor defined
(
a = 0, b = 0;
)

Utilizări ale constructorului

  • Este o metodă specială care deține același nume cu numele clasei și inițializează obiectul ori de câte ori este creat. Deci este simplu și ușor de executat.
  • Este utilizat în principal pentru gestionarea memoriei. Acestea sunt utilizate pentru inițializarea și eliminarea blocului de memorie atunci când nu mai este necesară având opțiunile New și Șterge, după cum este specificat de programator
  • Compilatorul creează un constructor implicit ori de câte ori este creat obiectul. Când nu ați declarat constructorul, compilatorul va crea unul singur. Este util, deoarece obiectul și funcția din program știu că obiectul există
  • Un constructor pentru un obiect este creat atunci când o instanță este un obiect care este declarat. O clasă poate avea mai mulți constructori pentru diferite situații. Supraîncărcarea constructorului crește versatilitatea clasei, având numeroși constructori într-o clasă individuală.

Overclass X's a, b value:: 0, 0
Overclass X1's a, b value:: 4, 5
Overclass X2's a, b value:: 6, 12

Prin urmare, constructorul este supraîncărcat cu valori diferite.

Tipuri de constructori în C.

Principalele tipuri de constructor sunt explicate după cum urmează,

1. Constructor implicit

Un constructor implicit nu are niciun parametru sau parametrul prezent are valori implicite. Dacă nu există niciun constructor definit de utilizator în clasă, compilatorul creează unul nou, dacă este nevoie, și acesta este numit constructor implicit. Acesta este un membru public al clasei. Acest constructor va avea un corp complet și nu are inițiator. Constructorul implicit nu oferă nimic specific, ci doar alocă memorie obiectului. Un constructor din clasa X este superficial dacă toate afirmațiile următoare sunt adevărate. Este definit implicit. Dacă X nu are clase și funcții de bază virtuale. Toate clasele de bază și nu membrii statici ai lui X au constructori banali.

2. Constructori parametrizați

Constructorul care poate accepta argumentele se numește constructori parametrizați. Poate specifica argumentul ori de câte ori este nevoie.

Cod

class X (
int i;
public:
void abc(void);
void xyz(void);
// member function definitions
)
X 0b 1;
// default constructor for creating 0b1. hence user can use it,
// implicitly define default constructor is public
// member of the class
0b1. abc();
0b1. xyz();

3. Constructor de copiere

Se folosește pentru inițializarea și declararea unui obiect de la alt obiect

integer 10(12);

ar defini obiectul 10 și, în același timp, l-ar inițializa la valoarea de 12. O altă formă a acestei afirmații este

integer 10 = 12;

Procesul se numește inițializare copie. Un constructor de copiere este utilizat de fiecare dată când este creat obiectul temporar. Aplicarea constructorului de copii sunt următoarele; Returnarea obiectului ca valoare a funcției Inițializarea obiectului de către un alt obiect din aceeași clasă

Sintaxă

class_name :: class_name(class_name &ptr)
class
(
//data
public: game(arguments); // parameterized constructor
………
………
);

Cod

class school
(
char name(25);
int rno;
public: school(char, int); //parameterized constructor
);
school :: school (char n, int r)
(
name=n;
rno=r;
)

4. Supraîncărcarea constructorului

Când mai mulți constructori sunt folosiți în aceeași clasă, atunci se numește supraîncărcare de constructori. Ne oferă multiple modalități de inițializare a obiectelor dintr-o clasă. Crește flexibilitatea având mai mulți constructori într-o singură clasă.

Cod

#include
#include
using namespace std;
class student
(
int score;
char name(30);
public:
student(int x, char y())
// parameterized constructor
(
score =x;
strcpy(name, y);
)
student()
// normal constructor
(
score =100;
strcpy(name, "y");
)
void input_data()
(
cout<>score;
cout<>name;
)
void show_data()
(
cout<<"\n score :"< cout<<"\n Name :"< )
);
int main()
(
student s(10, "z");
s.show_data();
getch();
return 0;
)
#include
#include
using namespace std;
class student
(
int score;
char name(30);
public:
student(int x, char y())
// parameterized constructor
(
score =x;
strcpy(name, y);
)
student()
// normal constructor
(
score =100;
strcpy(name, "y");
)
void input_data()
(
cout<>score;
cout<>name;
)
void show_data()
(
cout<<"\n score :"< cout<<"\n Name :"< )
);
int main()
(
student s(10, "z");
s.show_data();
getch();
return 0;
)
#include
#include
using namespace std;
class student
(
int score;
char name(30);
public:
student(int x, char y())
// parameterized constructor
(
score =x;
strcpy(name, y);
)
student()
// normal constructor
(
score =100;
strcpy(name, "y");
)
void input_data()
(
cout<>score;
cout<>name;
)
void show_data()
(
cout<<"\n score :"< cout<<"\n Name :"< )
);
int main()
(
student s(10, "z");
s.show_data();
getch();
return 0;
)

5. Constructor bidimensional

Este ca o matrice în structură și conține rânduri și coloane. Reține un șir de șiruri în care un rând reprezintă o șir și o coloană reprezintă o valoare a șirului.

Cod

// overloading class constructors
#include
using namespace std;
class CRectangle
(
int width, height;
public:
CRectangle ();
CRectangle (int, int);
int area (void)
(
return (width*height);
)
);
CRectangle::CRectangle ()
(
width = 7;
height = 5;
)
CRectangle::CRectangle (int a, int b)
(
width = a;
height = b;
)
int main ()
(
CRectangle rect (7, 5);
CRectangle rectb;
cout << "rect area: " << rect.area() << endl;
cout << "rectb area: " << rectb.area() << endl;
return 0;
)

Sintaxă

char arrayname(x)(y);

unde „x” este numărul de rânduri „y” este numărul de coloane.

Numărul de rânduri trebuie să fie același cu numărul de șiruri din acel tablou. Numărul coloanei trebuie să fie mai mare sau egal cu lungimea șirului sau poate fi plus unul

Exemplu

Dacă există 8 șiruri în tablă și lungimea șirului cel mai lung este 10, tabloul este definit după cum urmează

Char days(8)(11);

6. Constructor privat

Este folosit pentru a crea un obiect al clasei pentru o singură dată. Este definit că clasa nu are mai multe instanțe ale clasei. Este la fel ca alți constructori, dar definiți ca privați. Poate accesa doar obiectul clasei definite.

Cod

classroom()
(
private:

Doar acea parte a programului și poate fi accesată și definită doar în secțiunea privată

Concluzie - Constructor în C

Un constructor poate lua parametri nuli sau mai mulți. O clasă poate defini unul sau mai mulți constructori. Depinde de noi să decidem ce constructor să execute în timpul creării obiectului, trecând o listă de argumente adecvată constructorului, setând valoarea implicită pentru parametrul constructor. Pointerele nu pot fi utilizate pentru constructori, deoarece adresele lor nu pot fi luate în considerare. Constructorii nu pot fi declarați statici, constanți sau volatili.

Articole recomandate

Acesta este un ghid pentru Constructor în C. Aici vom discuta despre utilizarea constructorului, tipurile de constructor cu exemple, cod și ieșiri. Puteți, de asemenea, să parcurgeți alte articole conexe pentru a afla mai multe-

  1. Copiați constructorul în Java
  2. Arătări în programarea C
  3. Constructor în Python
  4. Constructor în JavaScript
  5. C Înmulțirea matricei de programare