Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Migration of unmigrated content due to installation of a new plugin

Esimerkit

Anchor
esim1
esim1

Esimerkki 1:

Aiheet: Luokka, olion luonti sekä jäsenmuuttujien ja metodien käsittely.

Tietokone.h:

Code Block

class Tietokone
{
private:
    int ProsessoriLkm;
    int Muisti;

public:
    void TulostaTiedot();
    void AsetaProsessoriLkm(int);
};

Tietokone.cpp:

Code Block

#include <stdio.h>
#include "Tietokone.h"

void Tietokone::TulostaTiedot()
{
    printf("Tietokoneessa on %d prosessoria ja %d muistia\n", ProsessoriLkm, Muisti);
}

void Tietokone::AsetaProsessoriLkm(int p)
{
    ProsessoriLkm = p;
}

main.cpp:

Code Block

#include "Tietokone.h"

int main()
{
    Tietokone pc; // Tietokone = luokka, pc = olio

    pc.AsetaProsessoriLkm(2);

    pc.TulostaTiedot();
}

Harjoitus 1:

Aiheet: Luokka, olion luonti sekä jäsenmuuttujien ja metodien käsittely.

Wiki MarkupElain.h:

Code Block

class CElain

...

{
private:   // privaatti, vain luokan sisällä voidaan muuttaa

...

    char m_Nimi

...

[100

...

];  

...

    // Eläimen nimi

...

    float m_Massa; 

...

        // Eläimen massa, paino

...


    void TulostaNimi();    // Tulostaa ruudulle eläimen nimen

...


    void TulostaMassa();   // Tulostaa ruudulle eläimen

...

 massan

public:   // julkinen, kaikki voi kutsua

...

    CElain(char Nimi

...

[

...

], float Massa);   // Muodostin, parametreina Nimi ja Massa

...


    bool AsetaNimi(char Nimi

...

[

...

]);   

...

     // Asettaa eläimen nimen

...

    bool AsetaMassa(float Massa); 

...

      // Asettaa eläimen massan

...

    void Tulosta();
};

Elain.cpp: #include "stdafx.h" // Ei tarvita, jos tekee Empty Project:in
#include

Code Block

#include "Elain.h"

...

    // CElain-luokan

...

 headeri

CElain::CElain(char Nimi

...

[

...

], float Massa)

...

{

...

    strcpy(m_Nimi, Nimi);&nbsp;  // Kopioidaan nimi luokkaan

...

    m_Massa = Massa;
}

...



bool CElain::AsetaNimi(char Nimi

...

[

...

])

...

{

...

    strcpy(m_Nimi, Nimi);   // Kopioidaan nimi luokkaan

...

    return true;
}

...



void CElain::TulostaNimi()

...


{
    printf("Eläimen nimi on %s\n", m_Nimi);

...


}

...



bool CElain::AsetaMassa(float Massa)

...


{
    m_Massa = Massa;

...


    return true;

...


}

...



void CElain::TulostaMassa()

...


{
    printf("Eläimen massa on %.2f kiloa\n",

...

 m_Massa);

...


}

...



void CElain::Tulosta()

...


{
    TulostaNimi();

...


    TulostaMassa();

...


}

main.cpp: #include "stdafx.h"
#include

Code Block

#include "Elain.h"

...



int main(int argc, char

...

* argv

...

[

...

])

...

{

...

    CElain kissa("miuku", 2.4);   // Luodaan olio CElain luokasta ja annetaan nimi ja massa parametreina

...



    kissa.Tulosta();

    return 0;
}

Anchor
harj2
harj2
    return 0;
}

Harjoitus 2:

Aiheet: Periytyminen.

Elain.h:

Code Block

#include <stdio.h>

...


#include <string.h>

...



class CElain

...

{
private: // privaatti, vain luokan sisällä voidaan muuttaa

...

    char m_Nimi

...

[100

...

]

...

;    // Eläimen nimi

...

    float m_Massa;       // Eläimen massa, paino

...



    void TulostaNimi();  // Tulostaa ruudulle eläimen

...

 nimen
    void TulostaMassa(); // Tulostaa ruudulle eläimen

...

 massan

public: // julkinen, kaikki voi kutsua

...

    bool AsetaNimi(char Nimi

...

[

...

]);  // Asettaa eläimen nimen

...

    bool AsetaMassa(float Massa); // Asettaa eläimen massan

...


    void Tulosta();
};

Elain.cpp:

Code Block

#include "Elain.h"     //  CElain-luokan headeri

...



bool CElain::AsetaNimi(char Nimi

...

[

...

])

...

{

...

    strcpy(m_Nimi, Nimi); // Kopioidaan nimi luokkaan

...

    return true;
}

...



void CElain::TulostaNimi()

...


{
    printf("Eläimen nimi on %s\n", m_Nimi);

...


}

...



bool CElain::AsetaMassa(float Massa)

...


{
    m_Massa = Massa;

...


    return true;

...


}

...



void CElain::TulostaMassa()

...


{
    printf("Eläimen massa on %.2f kiloa\n", m_Massa);

...


}

...



void CElain::Tulosta()

...


{
    TulostaNimi();

...


    TulostaMassa();

...


}

Kissa.h:

Code Block

#include "Elain.h"

...



class CKissa

...

 :
    public CElain
{
public:
    CKissa(void);

...


    ~CKissa(void);

...


    void Kehraa();

...


};

Kissa.cpp:

Code Block

#include "Kissa.h"

...



CKissa::CKissa(void)

...


{

...


}

...



CKissa::~CKissa(void)

...


{

...


}

...



void CKissa::Kehraa()

...


{
    printf("Kehraa...");

...


}

main.cpp:

Code Block

#include <stdio.h>

...


#include <conio.h>

...


#include "Kissa.h"

...



int main()

...


{
    CKissa kissa;

    kissa.AsetaNimi("Miuku");

...


    kissa.AsetaMassa(1.2)

...

;
    kissa.Tulosta();

...


    kissa.Kehraa();

...



    getch();

    return 0;
}

Anchor
harj3
harj3
    return 0;
}

Harjoitus 3:

Aiheet: Tulostaminen cin ja cout ja käyttäjän syötteen lukeminen cin ja cout -olioilla.

main.cpp:

Code Block

#include <iostream>

...


#include <string>

...



using namespace std;

...



int main()

...

{

...

    int Luku1, Luku2;

...

    char Operaattori;

...

    char Nimi

...

[100

...

];

...



    cout << "Anna nimesi: ";

...


    cin >> Nimi;

    cout << "Anna 1. luku: ";
    cin >> Luku1;

    cout << "Anna 2. luku: ";
    cin >> Luku2;

    cout << "Anna operaattori: + - * / ";
    cin >> Operaattori;

    cout << "Hei " << Nimi << ", annoit laskutoimituksen: " <<  Luku1 << " " << Operaattori << " " << Luku2 << endl;

    return 0;
}

Anchor
harj4
harj4

    cout << "Anna 1. luku: ";
    cin >> Luku1;

    cout << "Anna 2. luku: ";
    cin >> Luku2;

    cout << "Anna operaattori: + - * / ";
    cin >> Operaattori;

    cout << "Hei " << Nimi << ", annoit laskutoimituksen: " << Luku1 << " " << Operaattori << " " << Luku2 << endl;

    return 0;
}

Harjoitus 4:

Aiheet: Const-määritteet.

main.cpp:

Code Block

#include "Luokka.h"

...



int main()

...


{
    const CLuokka luokka;
    luokka.YmpyranKeha(1.2467);

...



    CLuokka luokka2;
    luokka2.YmpyranKeha(283947);

...


    luokka2.TeeJotain();

...


}

Luokka.h:

Code Block

class CLuokka

...


{

...


private:

...


    const float m_Pii; // const tarkoittaa vakiota. Arvo ei voi muuttua ohjelman ajon

...

 aikana
    int m_Luku;

...



public:

...


    CLuokka();

...


    float YmpyranKeha(const float r) const; // Parametri on const, arvo ei voi muuttua funktion

...

 sisällä
    void TeeJotain();

...


};

Luokka.cpp:

Code Block

#include "Luokka.h"

...



CLuokka::CLuokka()

...

 :
    m_Pii(3.14)

...


{
    m_Luku = 0;

...


}

...



float CLuokka::YmpyranKeha(const float r) const

...


{
    return&nbsp;2*m_Pii*r;

...


}

...



void CLuokka::TeeJotain()

...


{
    m_Luku = 2;

...


}

Harjoitus 5:

Aiheet: Funktioiden ylikuormitus.

...