Introduzione al costruttore in C
Un costruttore in C viene utilizzato nella gestione della memoria della programmazione C ++. Permette tipi di dati integrati come int, float e tipi di dati definiti dall'utente come la classe. Il costruttore nella programmazione orientata agli oggetti inizializza la variabile di un tipo di dati definito dall'utente. Il costruttore aiuta nella creazione di un oggetto. Il nome del costruttore è uguale al nome dell'oggetto ma non ha un tipo restituito. Un costruttore viene eseguito automaticamente quando viene creato un oggetto o un membro speciale. Alloca la memoria per il nuovo oggetto creato e può essere sovraccaricato.
Codice
// class with Constructor
class integer
(
int a, b;
public:
integer (void);
// declaration of Constructor
);
integer :: integer (void)
// constructor defined
(
a = 0, b = 0;
)
Usi del costruttore
- È un metodo speciale che ha lo stesso nome del nome della classe e inizializza l'oggetto ogni volta che viene creato. Quindi è semplice e facile da eseguire.
- Viene utilizzato principalmente per la gestione della memoria. Sono utilizzati per inizializzare e rimuovere il blocco di memoria quando non è più necessario con le opzioni Nuova ed Elimina come specificato dal programmatore
- Il compilatore crea un costruttore predefinito ogni volta che viene creato l'oggetto. Quando non hai dichiarato il costruttore, il compilatore ne creava uno. È utile perché l'oggetto e la funzione nel programma sanno che l'oggetto esiste
- Un costruttore per un oggetto viene creato quando un'istanza è un oggetto dichiarato. Una classe può avere più costruttori per diverse situazioni. Il sovraccarico del costruttore aumenta la versatilità della classe avendo molti costruttori in una singola classe.
Overclass X's a, b value:: 0, 0
Overclass X1's a, b value:: 4, 5
Overclass X2's a, b value:: 6, 12
Quindi il costruttore è sovraccarico di valori diversi.
Tipi di costruttore in C
I principali tipi del costruttore sono spiegati come segue,
1. Costruttore predefinito
Un costruttore predefinito non ha parametri o il parametro attuale ha valori predefiniti. Se nella classe non è presente alcun costruttore definito dall'utente, il compilatore ne crea uno nuovo, se necessario, e viene chiamato come costruttore predefinito. Questo è un membro pubblico in linea della classe. Questo costruttore avrà un corpo completo e nessun inizializzatore. Il costruttore predefinito non fornisce nulla di specifico, ma alloca semplicemente memoria all'oggetto. Un costruttore di Classe X è superficiale se tutte le seguenti affermazioni sono vere. È definito implicitamente. Se X non ha classi e funzioni di base virtuali. Tutte le classi base e non i membri statici di X hanno costruttori banali.
2. Costruttori con parametri
Il costruttore che può accettare gli argomenti si chiama Costruttori parametrizzati. Può specificare l'argomento ogni volta che è necessario.
Codice
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. Copia costruttore
Viene utilizzato per inizializzare e dichiarare un oggetto da un altro oggetto
integer 10(12);
definirebbe l'oggetto 10 e allo stesso tempo lo inizializzerebbe al valore di 12. Un'altra forma di questa affermazione è
integer 10 = 12;
Il processo si chiama inizializzazione della copia. Un costruttore di copie viene utilizzato ogni volta che viene creato l'oggetto temporaneo. L'applicazione del costruttore di copie è la seguente; Restituzione dell'oggetto come valore della funzione Inizializzazione dell'oggetto da parte di un altro oggetto della stessa classe
Sintassi
class_name :: class_name(class_name &ptr)
class
(
//data
public: game(arguments); // parameterized constructor
………
………
);
Codice
class school
(
char name(25);
int rno;
public: school(char, int); //parameterized constructor
);
school :: school (char n, int r)
(
name=n;
rno=r;
)
4. Sovraccarico del costruttore
Quando vengono utilizzati più costruttori nella stessa classe, si parla di sovraccarico del costruttore. Ci offre diversi modi per inizializzare gli oggetti in una classe. Aumenta la flessibilità avendo più costruttori in una singola classe.
Codice
#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. Costruttore bidimensionale
È come una matrice nella struttura e contiene righe e colonne. Contiene una matrice di stringhe in cui una riga rappresenta una stringa e una colonna rappresenta un valore di stringa.
Codice
// 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;
)
Sintassi
char arrayname(x)(y);
dove 'x' è il numero di righe 'y' è il numero di colonne.
Il numero di righe deve essere uguale al numero di stringhe in quell'array. Il numero della colonna deve essere maggiore o uguale alla lunghezza della stringa oppure può essere più uno
Esempio
Se ci sono 8 stringhe nell'array e la lunghezza della stringa più lunga è 10, l'array viene definito come segue
Char days(8)(11);
6. Costruttore privato
Viene utilizzato per creare un oggetto di classe per una sola volta. È definito che la classe non ha più istanze della classe. È lo stesso di altri costruttori ma definito come privato. Può accedere solo all'oggetto di quella classe definita.
Codice
classroom()
(
private:
Solo quella parte del programma e può essere letta e definita solo all'interno della sezione privata
Conclusione - Costruttore in C
Un costruttore può accettare null o più parametri. Una classe può definire uno o più costruttori. Sta a noi decidere quale costruttore eseguire durante la creazione dell'oggetto passando un elenco di argomenti appropriato al costruttore impostando il valore predefinito per il parametro del costruttore. I puntatori non possono essere utilizzati sui costruttori perché i loro indirizzi non possono essere considerati. I costruttori non possono essere dichiarati come statici, const o volatili.
Articoli consigliati
Questa è una guida per Costruttore in C. Qui discutiamo l'uso del costruttore, i tipi del costruttore con esempi, codice e output. Puoi anche consultare i nostri altri articoli correlati per saperne di più-
- Costruttore di copie in Java
- Matrici in programmazione C.
- Costruttore in Python
- Costruttore in JavaScript
- C Moltiplicazione della matrice di programmazione