Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

C++ tarjoaa ohjelmoijalle mahdollisuuden ylikuormittaa funktioita (ja metodeita). Tällä tarkoitetaan sitä, että voi olla samannimisiä funktioita, jotka eroavat parametrien lukumäärässä. Kutsuttava funktio /metodi tunnistetaan parametrien tyypistä. HUOM! palautustyyppiä ei voi ylikuormittaa. Muodostimien kanssa käytetään usein ylikuormitusta.

Note

Palautustyyppiä ei voi ylikuormittaa.

Esimerkki

...

1.

...

Funktioiden ylikuormitus.

...

.h:

Code Block

class CElain
{
private:   // saatavissa vain luokan metodeilla

...

    char m_Nimi

...

[100

...

];

...

    float m_Massa;

...



public:   // voidaan käyttää luokan ulkopuolelta

...

    bool AsetaTiedot(char Nimi

...

[

...

], float Massa);   // 'Alkuperäinen metodi'

...

    bool AsetaTiedot(char Nimi

...

[

...

]);                // 1. Ylikirjoitettu

...

 funktio
    

...

bool AsetaTiedot(float Massa);                // 2. ylikirjoitettu

...

 funktio
};

...


.cpp:

Code Block

bool CElain::AsetaTiedot(char Nimi

...

[

...

], float Massa)
{

...

    printf("AsetaTiedot(char

...

[

...

], float)\n");

...

    AsetaTiedot(Nimi);

...

    AsetaTiedot(Massa);

...

    return true;
}

...



bool CElain::AsetaTiedot(char Nimi

...

[

...

])
{

...

    printf("AsetaTiedot(char

...

[

...

])\n");

...

    strcpy(m_Nimi, Nimi);

...

    return true;
}

...



bool CElain::AsetaTiedot(float Massa)

...


{
    printf("AsetaTiedot(float)\n");

...


    m_Massa = Massa;

...


    return true;

...


}

main:

Code Block

int 

...

main()

...


{
    CElain kissa;

    kissa.AsetaTiedot("Miuku", 2.4);   // kutsuu metodia

...

 AsetaTiedot(char Nimi

...

[

...

], float Massa)

...

    kissa.AsetaTiedot("Mauku"); 

...

       // kutsuu metodia

...

 AsetaTiedot(char Nimi

...

[

...

])

...

    kissa.AsetaTiedot(2.4);

...

            // kutsuu metodia

...

 AsetaTiedot(float Massa)
}

...