Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lära Vad Är en Klasskonstruktor | Konstruktorer och Destruktorer
C++ OOP
course content

Kursinnehåll

C++ OOP

C++ OOP

1. Grunderna i OOP i C++
2. Konstruktorer och Destruktorer
3. Översikt Av Inkapsling
4. Översikt av Arv
5. Översikt av Polymorfism

book
Vad Är en Klasskonstruktor

Note
Definition

Konstruktor är en speciell metod i en klass som anropas när ett objekt skapas. Med den kan du initiera attributen till meningsfulla värden.

Genom att använda konstruktorer kan du förenkla skapandet av objekt. Utan en konstruktor skulle du behöva ställa in varje egenskap individuellt och kanske behöva anropa flera metoder bara för att få objektet i ett användbart tillstånd.

Det primära syftet med en konstruktor är att initiera den nyligen skapade instansen. Den kan ställa in initialvärden för attributen baserat på parametrarna som skickas till konstruktorn, vilket säkerställer att objektet startar i ett giltigt tillstånd.

Syntax för konstruktor

Även om processen att utveckla en konstruktor kan verka enkel, involverar den många specifika överväganden. Det generella tillvägagångssättet för att skapa en är:

student.h

student.h

copy
12345678
class Student { public: Student() { name = 'Default'; } std::string name; };
  • Namn: konstruktorn har samma namn som klassen själv;

  • Returtyp: konstruktorer har ingen returtyp, inte ens void;

  • Parametrar: konstruktorer kan ta parametrar och kan överlagras med olika uppsättningar av parametrar för att möjliggöra olika sätt att initiera objekt;

  • Automatisk anrop: konstruktorn anropas automatiskt av kompilatorn när ett objekt skapas.

Standardkonstruktor

En standardkonstruktor är en konstruktor som kan anropas utan några argument. Så här definieras och används standardkonstruktorer:

main.cpp

main.cpp

copy
1234567891011121314
#include <iostream> class Example { public: Example() { std::cout << "Object was created!"; } }; int main() { Example obj; }

Du kan experimentera med koden ovan. Logiken som skrivs i Example()-metoden körs varje gång en instans av klassen skapas.

Note
Notering

Försök att lägga till ett till objekt eller ändra logiken inuti konstruktorn.

Om ingen konstruktor definieras genererar kompilatorn en standardkonstruktor. Dess beteende beror på medlemvariablernas typer: fundamentala typer, standardkonstruerbara typer eller användardefinierade typer.

main.cpp

main.cpp

copy
123456789101112
#include <iostream> class Example { public: int value; }; int main() { Example obj; // Default constructor std::cout << obj.value; }

En attribut är en fundamental datatyp. Den automatiskt genererade standardkonstruktorn initierar inte medlemsvariabler av inbyggda typer. Dessa kommer att ha obestämda värden om du skapar ett objekt och inte uttryckligen initierar dessa fält.

Note
Observera

Du kan märka att kompilatorn tillhandahåller ett konsekvent värde för value-variabeln, men standarden kräver inte detta och det är möjligt att den innehåller ett skräpvärde.

question mark

När anropas konstruktorn?

Select the correct answer

Var allt tydligt?

Hur kan vi förbättra det?

Tack för dina kommentarer!

Avsnitt 2. Kapitel 1

Fråga AI

expand

Fråga AI

ChatGPT

Fråga vad du vill eller prova någon av de föreslagna frågorna för att starta vårt samtal

course content

Kursinnehåll

C++ OOP

C++ OOP

1. Grunderna i OOP i C++
2. Konstruktorer och Destruktorer
3. Översikt Av Inkapsling
4. Översikt av Arv
5. Översikt av Polymorfism

book
Vad Är en Klasskonstruktor

Note
Definition

Konstruktor är en speciell metod i en klass som anropas när ett objekt skapas. Med den kan du initiera attributen till meningsfulla värden.

Genom att använda konstruktorer kan du förenkla skapandet av objekt. Utan en konstruktor skulle du behöva ställa in varje egenskap individuellt och kanske behöva anropa flera metoder bara för att få objektet i ett användbart tillstånd.

Det primära syftet med en konstruktor är att initiera den nyligen skapade instansen. Den kan ställa in initialvärden för attributen baserat på parametrarna som skickas till konstruktorn, vilket säkerställer att objektet startar i ett giltigt tillstånd.

Syntax för konstruktor

Även om processen att utveckla en konstruktor kan verka enkel, involverar den många specifika överväganden. Det generella tillvägagångssättet för att skapa en är:

student.h

student.h

copy
12345678
class Student { public: Student() { name = 'Default'; } std::string name; };
  • Namn: konstruktorn har samma namn som klassen själv;

  • Returtyp: konstruktorer har ingen returtyp, inte ens void;

  • Parametrar: konstruktorer kan ta parametrar och kan överlagras med olika uppsättningar av parametrar för att möjliggöra olika sätt att initiera objekt;

  • Automatisk anrop: konstruktorn anropas automatiskt av kompilatorn när ett objekt skapas.

Standardkonstruktor

En standardkonstruktor är en konstruktor som kan anropas utan några argument. Så här definieras och används standardkonstruktorer:

main.cpp

main.cpp

copy
1234567891011121314
#include <iostream> class Example { public: Example() { std::cout << "Object was created!"; } }; int main() { Example obj; }

Du kan experimentera med koden ovan. Logiken som skrivs i Example()-metoden körs varje gång en instans av klassen skapas.

Note
Notering

Försök att lägga till ett till objekt eller ändra logiken inuti konstruktorn.

Om ingen konstruktor definieras genererar kompilatorn en standardkonstruktor. Dess beteende beror på medlemvariablernas typer: fundamentala typer, standardkonstruerbara typer eller användardefinierade typer.

main.cpp

main.cpp

copy
123456789101112
#include <iostream> class Example { public: int value; }; int main() { Example obj; // Default constructor std::cout << obj.value; }

En attribut är en fundamental datatyp. Den automatiskt genererade standardkonstruktorn initierar inte medlemsvariabler av inbyggda typer. Dessa kommer att ha obestämda värden om du skapar ett objekt och inte uttryckligen initierar dessa fält.

Note
Observera

Du kan märka att kompilatorn tillhandahåller ett konsekvent värde för value-variabeln, men standarden kräver inte detta och det är möjligt att den innehåller ett skräpvärde.

question mark

När anropas konstruktorn?

Select the correct answer

Var allt tydligt?

Hur kan vi förbättra det?

Tack för dina kommentarer!

Avsnitt 2. Kapitel 1
some-alt