Esittely latautuu. Ole hyvä ja odota

Esittely latautuu. Ole hyvä ja odota

Olioon kohdistuvia perustoimintoja tMyn1 Olioon kohdistuvia perustoimintoja Kopiointimuodostin (copy constructor) alustaa olion tietojäsenet saman luokan.

Samankaltaiset esitykset


Esitys aiheesta: "Olioon kohdistuvia perustoimintoja tMyn1 Olioon kohdistuvia perustoimintoja Kopiointimuodostin (copy constructor) alustaa olion tietojäsenet saman luokan."— Esityksen transkriptio:

1 Olioon kohdistuvia perustoimintoja tMyn1 Olioon kohdistuvia perustoimintoja Kopiointimuodostin (copy constructor) alustaa olion tietojäsenet saman luokan olemassa olevan olion tiedoilla. Kääntäjä generoi kopiointimuodostimen, joka kopioi uudelle oliolle parametrina välitetyn saman luokan olion tietojäsenten sisällön. Ohjelmoija voi määritellä kopiointimuodostimen myös itse, jos kääntäjän generoiman muodostimen toiminta ei tyydytä.

2 Olioon kohdistuvia perustoimintoja tMyn2 Automaattisen olion tilanvaraus ja kopiointimuodostimen kutsu: Luokka uusiOlio(vanhaAutomOlio); Luokka uusiOlio=vanhaAutomOlio; Luokka uusiOlio(*vanhaDynOlio); Luokka uusiOlio=*vanhaDynOlio;

3 Olioon kohdistuvia perustoimintoja tMyn3 Dynaamisen olion tilanvaraus ja kopiointimuodostimen kutsu: Luokka *uusiOlio; uusiOlio=new Luokka(vanhaAutomOlio); uusiOlio=new Luokka(*vanhaDynOlio);

4 Olioon kohdistuvia perustoimintoja tMyn4 Ohjelmoija voi myös itse määritellä kopiointimuodostimen. Silloin tulee muistaa: –Kopiointimuodostimen ensimmäinen parametri on viittaus saman luokan olioon. –Viittaus voi olla määritelty vakioksi const-määreellä. –Kopiointimuodostimen muilla mahdollisilla parametreilla tulee olla oletusarvo. –Jos ohjelmoija määrittelee kopiointimuodostimen, ei kääntäjä generoi oletusmuodostinta.

5 Olioon kohdistuvia perustoimintoja tMyn5 Kopiointimuodostimen esittelytavat: Luokka (const Luokka&); Luokka (const Luokka&, parametri=alkuarvo,...);

6 Olioon kohdistuvia perustoimintoja tMyn6 #include "stdafx.h" #include using namespace System; using namespace std; class Laatikko { public: Laatikko(double, double, double); Laatikko(const Laatikko&, double=6.8); double tilavuus(); private: double leveys; double syvyys; double korkeus; };

7 Olioon kohdistuvia perustoimintoja tMyn7 Laatikko::Laatikko(double le, double sy, double ko) { leveys=le; syvyys=sy; korkeus=ko; } Laatikko::Laatikko(const Laatikko& viite, double ko) { leveys=viite.leveys; syvyys=viite.syvyys; korkeus=ko; } double Laatikko::tilavuus() { return leveys*syvyys*korkeus; }

8 Olioon kohdistuvia perustoimintoja tMyn8 int main(array ^args) { Laatikko eka(2.1, 3.2, 4.3); Laatikko kopio(eka); Laatikko tokaKopio(eka, 5.7); cout<<"Tilavuus on, eka: "<<eka.tilavuus()<<"."<<endl; cout<<"Tilavuus on, kopio: "<<kopio.tilavuus()<<"."<<endl; cout<<"Tilavuus on, tokaKopio: "<<tokaKopio.tilavuus() <<"."<<endl; return 0; }

9 Olioon kohdistuvia perustoimintoja tMyn9 Olion tilanvarauksen jälkeen olemassa olevan olion tietojäsenet voidaan alustaa sijoitusoperaattorilla = Kopioinnissa on aina kysymys uuden olion luonnista kopiointimuodostimen avulla, kun taas sijoituksessa jo olemassa olevan olion tietojäsenten arvot korvautuvat uusilla. Sijoitus olemassa olevaan olioon: olenOlemassa=niinMinakin;


Lataa ppt "Olioon kohdistuvia perustoimintoja tMyn1 Olioon kohdistuvia perustoimintoja Kopiointimuodostin (copy constructor) alustaa olion tietojäsenet saman luokan."

Samankaltaiset esitykset


Iklan oleh Google