Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lære Hva er en konstruktør for klassen | Konstruktører og Destruktører
C++ OOP
course content

Kursinnhold

C++ OOP

C++ OOP

1. Grunnleggende om OOP i C++
2. Konstruktører og Destruktører
3. Oversikt Over Innkapsling
4. Oversikt over Arv
5. Oversikt over Polymorfisme

book
Hva er en konstruktør for klassen

Note
Definisjon

Konstruktør er en spesiell metode i en klasse som kalles når et objekt opprettes. Med denne kan du initialisere attributtene til meningsfulle verdier.

Ved å bruke konstruktører kan du forenkle opprettelsen av objekter. Uten en konstruktør måtte du sette hver egenskap individuelt og kanskje måtte kalle flere metoder bare for å få objektet i en brukbar tilstand.

Hovedformålet med en konstruktør er å initialisere den nylig opprettede instansen. Den kan sette startverdier for attributtene basert på parameterne som sendes til konstruktøren, og sikrer at objektet starter i en gyldig tilstand.

Syntaks for konstruktør

Selv om prosessen med å utvikle en konstruktør kan virke enkel, innebærer den flere spesifikke hensyn. Den generelle tilnærmingen for å lage en er:

student.h

student.h

copy
12345678
class Student { public: Student() { name = 'Default'; } std::string name; };
  • Navn: konstruktøren har samme navn som klassen selv;

  • Returtype: konstruktører har ingen returtype, ikke engang void;

  • Parametere: konstruktører kan ta parametere og kan overbelastes med ulike sett av parametere for å tillate forskjellige måter å initialisere objekter på;

  • Automatisk kall: konstruktøren kalles automatisk av kompilatoren når et objekt opprettes.

Standardkonstruktør

En standardkonstruktør er en konstruktør som kan kalles uten argumenter. Slik defineres og brukes standardkonstruktører:

main.cpp

main.cpp

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

Du kan eksperimentere med koden ovenfor. Logikken skrevet i Example()-metoden kjøres hver gang en instans av klassen opprettes.

Note
Merk

Prøv å legge til ett objekt til eller endre logikken inne i konstruktøren.

Hvis ingen konstruktør er definert, genererer kompilatoren en standard konstruktør. Dens oppførsel avhenger av medlemvariabeltypene: grunnleggende typer, standard-konstruerbare typer eller brukerdefinerte typer.

main.cpp

main.cpp

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

Et attributt er en grunnleggende datatype. Den automatisk genererte standardkonstruktøren initialiserer ikke medlemsvariabler av innebygd type. Disse vil ha ubestemte verdier hvis du oppretter et objekt og ikke eksplisitt initialiserer disse feltene.

Note
Merk

Du kan oppleve at kompilatoren gir en konsekvent verdi for value-variabelen, men standarden krever ikke dette, og det er mulig at den vil inneholde en vilkårlig verdi.

question mark

Når blir konstruktøren kalt?

Select the correct answer

Alt var klart?

Hvordan kan vi forbedre det?

Takk for tilbakemeldingene dine!

Seksjon 2. Kapittel 1

Spør AI

expand

Spør AI

ChatGPT

Spør om hva du vil, eller prøv ett av de foreslåtte spørsmålene for å starte chatten vår

course content

Kursinnhold

C++ OOP

C++ OOP

1. Grunnleggende om OOP i C++
2. Konstruktører og Destruktører
3. Oversikt Over Innkapsling
4. Oversikt over Arv
5. Oversikt over Polymorfisme

book
Hva er en konstruktør for klassen

Note
Definisjon

Konstruktør er en spesiell metode i en klasse som kalles når et objekt opprettes. Med denne kan du initialisere attributtene til meningsfulle verdier.

Ved å bruke konstruktører kan du forenkle opprettelsen av objekter. Uten en konstruktør måtte du sette hver egenskap individuelt og kanskje måtte kalle flere metoder bare for å få objektet i en brukbar tilstand.

Hovedformålet med en konstruktør er å initialisere den nylig opprettede instansen. Den kan sette startverdier for attributtene basert på parameterne som sendes til konstruktøren, og sikrer at objektet starter i en gyldig tilstand.

Syntaks for konstruktør

Selv om prosessen med å utvikle en konstruktør kan virke enkel, innebærer den flere spesifikke hensyn. Den generelle tilnærmingen for å lage en er:

student.h

student.h

copy
12345678
class Student { public: Student() { name = 'Default'; } std::string name; };
  • Navn: konstruktøren har samme navn som klassen selv;

  • Returtype: konstruktører har ingen returtype, ikke engang void;

  • Parametere: konstruktører kan ta parametere og kan overbelastes med ulike sett av parametere for å tillate forskjellige måter å initialisere objekter på;

  • Automatisk kall: konstruktøren kalles automatisk av kompilatoren når et objekt opprettes.

Standardkonstruktør

En standardkonstruktør er en konstruktør som kan kalles uten argumenter. Slik defineres og brukes standardkonstruktører:

main.cpp

main.cpp

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

Du kan eksperimentere med koden ovenfor. Logikken skrevet i Example()-metoden kjøres hver gang en instans av klassen opprettes.

Note
Merk

Prøv å legge til ett objekt til eller endre logikken inne i konstruktøren.

Hvis ingen konstruktør er definert, genererer kompilatoren en standard konstruktør. Dens oppførsel avhenger av medlemvariabeltypene: grunnleggende typer, standard-konstruerbare typer eller brukerdefinerte typer.

main.cpp

main.cpp

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

Et attributt er en grunnleggende datatype. Den automatisk genererte standardkonstruktøren initialiserer ikke medlemsvariabler av innebygd type. Disse vil ha ubestemte verdier hvis du oppretter et objekt og ikke eksplisitt initialiserer disse feltene.

Note
Merk

Du kan oppleve at kompilatoren gir en konsekvent verdi for value-variabelen, men standarden krever ikke dette, og det er mulig at den vil inneholde en vilkårlig verdi.

question mark

Når blir konstruktøren kalt?

Select the correct answer

Alt var klart?

Hvordan kan vi forbedre det?

Takk for tilbakemeldingene dine!

Seksjon 2. Kapittel 1
some-alt