Einführung in den Konstruktor in C
Ein Konstruktor in C wird in der Speicherverwaltung der C ++ - Programmierung verwendet. Es erlaubt eingebaute Datentypen wie int, float und benutzerdefinierte Datentypen wie class. Der Konstruktor in der objektorientierten Programmierung initialisiert die Variable eines benutzerdefinierten Datentyps. Konstruktor hilft bei der Erstellung eines Objekts. Der Name des Konstruktors ist mit dem Namen des Objekts identisch, hat jedoch keinen Rückgabetyp. Ein Konstruktor wird automatisch ausgeführt, wenn ein Objekt oder ein spezielles Element erstellt wird. Es reserviert den Speicher für das neu erstellte Objekt und kann überlastet werden.
Code
// class with Constructor
class integer
(
int a, b;
public:
integer (void);
// declaration of Constructor
);
integer :: integer (void)
// constructor defined
(
a = 0, b = 0;
)
Verwendung des Konstruktors
- Es ist eine spezielle Methode, die denselben Namen wie der Klassenname enthält und das Objekt bei jeder Erstellung initialisiert. So ist es einfach und leicht auszuführen.
- Es wird hauptsächlich für die Speicherverwaltung verwendet. Sie werden verwendet, um den Speicherblock zu initialisieren und zu entfernen, wenn er nicht mehr benötigt wird, indem die Optionen Neu und Löschen vom Programmierer festgelegt werden
- Der Compiler erstellt bei jeder Erstellung des Objekts einen Standardkonstruktor. Wenn Sie den Konstruktor nicht deklariert haben, hat der Compiler eine Eins erstellt. Dies ist nützlich, da das Objekt und die Funktion im Programm wissen, dass das Objekt vorhanden ist
- Ein Konstruktor für ein Objekt wird erstellt, wenn eine Instanz ein deklariertes Objekt ist. Eine Klasse kann mehrere Konstruktoren für verschiedene Situationen haben. Das Überladen von Konstruktoren erhöht die Vielseitigkeit der Klasse, indem viele Konstruktoren in einer einzelnen Klasse vorhanden sind.
Overclass X's a, b value:: 0, 0
Overclass X1's a, b value:: 4, 5
Overclass X2's a, b value:: 6, 12
Daher ist der Konstruktor mit unterschiedlichen Werten überladen.
Arten von Konstruktoren in C
Die Haupttypen des Konstruktors werden wie folgt erklärt:
1. Standardkonstruktor
Ein Standardkonstruktor hat keinen Parameter oder der aktuelle Parameter hat Standardwerte. Wenn in der Klasse kein benutzerdefinierter Konstruktor vorhanden ist, erstellt der Compiler bei Bedarf einen neuen, der als Standardkonstruktor bezeichnet wird. Dies ist ein inline öffentliches Mitglied der Klasse. Dieser Konstruktor hat einen vollständigen Körper und keinen Initialisierer. Der Standardkonstruktor stellt keine spezifischen Informationen zur Verfügung, sondern weist dem Objekt lediglich Speicher zu. Ein Konstruktor der Klasse X ist oberflächlich, wenn alle folgenden Aussagen wahr sind. Es ist implizit definiert. Wenn X keine virtuellen Basisklassen und Funktionen hat. Alle Basisklassen und nicht statische Member von X haben einfache Konstruktoren.
2. Parametrisierte Konstruktoren
Der Konstruktor, der die Argumente akzeptieren kann, heißt Parametrisierte Konstruktoren. Es kann das Argument angeben, wann immer es benötigt wird.
Code
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. Konstruktor kopieren
Es wird verwendet, um ein Objekt von einem anderen Objekt zu initialisieren und zu deklarieren
integer 10(12);
würde Objekt 10 definieren und gleichzeitig auf den Wert 12 initialisieren. Eine andere Form dieser Anweisung ist
integer 10 = 12;
Der Vorgang wird als Kopierinitialisierung bezeichnet. Ein Kopierkonstruktor wird immer dann verwendet, wenn das temporäre Objekt erstellt wird. Die Anwendung des Kopierkonstruktors sieht wie folgt aus: Rückgabe des Objekts als Funktionswert Initialisierung des Objekts durch ein anderes Objekt derselben Klasse
Syntax
class_name :: class_name(class_name &ptr)
class
(
//data
public: game(arguments); // parameterized constructor
………
………
);
Code
class school
(
char name(25);
int rno;
public: school(char, int); //parameterized constructor
);
school :: school (char n, int r)
(
name=n;
rno=r;
)
4. Überladen des Konstruktors
Wenn mehrere Konstruktoren in derselben Klasse verwendet werden, wird dies als Konstruktorüberladung bezeichnet. Es gibt uns mehrere Möglichkeiten, Objekte in einer Klasse zu initialisieren. Es erhöht die Flexibilität, indem mehrere Konstruktoren in einer Klasse enthalten sind.
Code
#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. Zweidimensionaler Konstruktor
Es ist wie ein Array in der Struktur und enthält Zeilen und Spalten. Es enthält ein String-Array, in dem eine Zeile einen String und eine Spalte einen String-Wert darstellt.
Code
// 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;
)
Syntax
char arrayname(x)(y);
Dabei ist 'x' die Anzahl der Zeilen. 'y' ist die Anzahl der Spalten.
Die Anzahl der Zeilen sollte der Anzahl der Zeichenfolgen in diesem Array entsprechen. Die Nummer der Spalte sollte größer oder gleich der Länge der Zeichenfolge sein, oder sie kann plus eins sein
Beispiel
Wenn das Array 8 Zeichenfolgen enthält und die Länge der längsten Zeichenfolge 10 beträgt, ist das Array wie folgt definiert
Char days(8)(11);
6. Privater Erbauer
Es wird verwendet, um ein Klassenobjekt für eine einzelne Zeit zu erstellen. Es ist definiert, dass die Klasse nicht mehrere Instanzen der Klasse hat. Es ist dasselbe wie bei anderen Konstruktoren, wird jedoch als privat definiert. Es kann nur auf das Objekt dieser definierten Klasse zugegriffen werden.
Code
classroom()
(
private:
Nur dieser Teil des Programms und kann nur im privaten Bereich aufgerufen und definiert werden
Fazit - Konstruktor in C
Ein Konstruktor kann null oder mehr Parameter annehmen. Eine Klasse kann einen oder mehrere Konstruktoren definieren. Es liegt an uns, zu entscheiden, welcher Konstruktor während der Objekterstellung ausgeführt werden soll, indem eine entsprechende Argumentliste an den Konstruktor übergeben wird, indem der Standardwert für den Konstruktorparameter festgelegt wird. Zeiger können nicht für Konstruktoren verwendet werden, da ihre Adressen nicht berücksichtigt werden können. Konstruktoren können nicht als statisch, konstant oder flüchtig deklariert werden.
Empfohlene Artikel
Dies ist eine Anleitung zum Konstruktor in C. Hier wird die Verwendung des Konstruktors, die Typen des Konstruktors mit Beispielen, Code und Ausgaben erläutert. Sie können auch unsere anderen verwandten Artikel durchgehen, um mehr zu erfahren.
- Konstruktor in Java kopieren
- Arrays in C-Programmierung
- Konstruktor in Python
- Konstruktor in JavaScript
- C Programmieren der Matrixmultiplikation