Placering av klasser i uppdelad kod

 

Skapa egna header-filer

Den kod som vi skrivit hittills har vi skrivit i en och samma .cpp-fil.
När man skriver objektorienterade program i C++ är det absolut vanligaste sättet att man
skriver deklarationen av klassen i en separat fil, man skapar alltså en egen header-fil.
Endast klassdeklarationen ska finnas i header-filen:
Definitionen av klassens metoder skriver man i en .cpp-fil.
Den .h-fil där klassen finns inkluderar du sedan i din ”programfil
 

OBS! Citationstecken istället för "<" och ">"

#include "DenEgnaHeaderfilen.h"

När program består av flera delar (filer) blir de också enklare att uppdatera och underhålla.
Det här gäller speciellt större program.
För det mesta är det enklare att uppdatera en modul av programmet än att försöka uppdatera hela programmet.

 

 

1. En .h –fil med klassens deklaration

 

#ifndef TESTKLASS_H

#define TESTKLASS_H

 

class testklass

{             

              public:

                     void set_a_b_c();

                    

                          void get_a_b_c();

      private:

              int a,b,c;                         

                              

};

 

#endif//********************************************

 

/*

#ifndef TESTKLASS_H

#define TESTKLASS_H

TESTKLASS_H är namnet på en konstant som man kan definiera själv, ett s.k makro.

#ifndef TESTKLASS_H är till för att förhindra att filen testklass.h inkluderas mer

än en gång i en kompilering. #ifndef betyder ”if not defined”.

Om testklass.h inte är definierad läser kompilatorn hela texten fram till #endif.

*/

 

2. En .cpp –fil med klassens definitioner// inkluderar .h filen

 

/*Name: testklass.cpp*/

#include <cstdlib>

#include <iostream>

#include "testklass.h"

 

void testklass::set_a_b_c()

{

     std::cout<<"Ge varden för dina a b c";

     std::cin>>a>>b>>c;

 }

                         

 void testklass::get_a_b_c()

 {

   std::cout<<a<<b<<c;

 }

/* EOF */

//********************************************

 

 

3. main() där du använder klassen

 

#include "testklass.h" /*inkluderar din filen med klassdeklarationer ” ” ingen sökväg = samma katalog*/

#include <cstdlib>

#include <iostream>

 

using namespace std;

 

int main()

{

    testklass minklass;

    minklass.set_a_b_c();

    system("PAUSE");

    minklass.get_a_b_c();

    system("PAUSE");

    return EXIT_SUCCESS;

}

 

//********************************************