Konstruktor (računalništvo)

Iz Wikipedije, proste enciklopedije
Skoči na: navigacija, iskanje

Konstruktor je metoda razreda v računalniškem programiranju, ki poskrbi za njegovo udejanjenje (instantizacijo). Konstruktor nosi isto ime, kot razred in poskrbi za stvaritev objekta razrednega tipa in nastavitev prvotnih vrednosti (inicializacija).

Kot je pri objektno usmerjenih programskih jezikih v navadi, ima razred lahko več konstruktorjev, ki se uporabijo, odvisno od podanih vhodnih vrednosti.

Vrste konstruktorjev[uredi | uredi kodo]

  • privzeti konstruktor
  • kopirni konstruktor
  • pretvorbeni konstruktor

Programska koda[uredi | uredi kodo]

JScript.NET[uredi | uredi kodo]

Primer razreda Avto z eno lastnostjo in tremi konstruktorskimi metodami, eno za privzeto barvo, eno za točno določeno barvo in tretjo za prenos barve:

class Avto {
  var barva : String;

  //privzeti konstruktor
  function Avto() {
    barva = 'bela'; //osnovna barva
  }
  // kopirni konstruktor 
  function Avto (aAvto : Avto)
  {
    barva = aAvto.barva; // kopirana barva od drugega
  }
  //pretvorbeni konstruktor
  function Avto(aBarva : String) {
    barva = aBarva; //podana barva
  }
}

Primer udejanjenja razreda Avto na tri načine:

 var mojAvto : Avto = new Avto();
 var navadenAvto : Avto = new Avto('rdeča');
 var kopirniAvto : Avto = new Avto(navadenAvto);

C++[uredi | uredi kodo]

Primer razreda Tocka z tremi konstuktorji in destruktorjem.

class Tocka
{
public:
    Tocka(int aX);  // privzeti konstruktor
    Tocka(int aX, int aY); //pretvorbeni konstruktor
    Tocka(const Tocka &staraTocka); // kopirni konstruktor 
    ~Tocka(); // destruktor
    int x, y;
};
Tocka::Tocka(int aX)
{
        x = aX;
        y = 0;
}
Tocka::Tocka(int aX, int aY)
{
    x = aX;
    y = aY;
}
Tocka::Tocka(const Tocka &staraTocka)
{
    x = staraTocka.x;
    y = staraTocka.y;
}
Tocka::~Tocka()
{
    // nas destruktor
}
int main()
{
    Tocka a(14); // klicemo privzeti konstuktor
    Tocka b(12, 16); // klicemo pretvorbeni konstruktor
    Tocka c(a); // klicemo kopirni konstruktor
    return 0;
}

Glej tudi[uredi | uredi kodo]