Placering av klasser 2

 

Inget förhindrar att du definierar fler klasser i din ”include-fil”.

I exemplet nedan är filen testklass utökad med class testklassII.

 

 

#ifndef TESTKLASS_H

#define TESTKLASS_H

 

class testklass

{             

public:

void set_a_b_c();                    

void get_a_b_c();

~testklass(){}; //destruktor

private:

int a,b,c;

                        

};

 

class testklassII

{             

public:

void set_a();                    

void get_a();

~testklassII(){}; //destruktor

private:

int a;

                        

};

#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 betyderif not defined”.

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

*/

 

//===========================================================

 

/*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 ar nu "<<a<<b<<c;

 }

//====================================================

void testklassII::set_a()  //konstruktor

{

 

     std::cout<<"skriv in en etta om du ar glad - annars en valfri siffra";

     std::cin>>a;

}

 

 void testklassII::get_a()

 {

   if(a==1)

   std::cout<<"du ar glad";

   else

   std::cout<<"du ar inte glad";

 }

/* EOF */

 

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

Separata metoder

man använder klassnamn::metod för att berätta

vilken klass metoden hör till

tillåter oss att definiera gränssnittet för en

klass separat från implementationen

kan ha koden i t.ex. skilda filer

man har vanligen klassdefinitionen i en fil klassnamn.h

och implementationen i klassnamn.cpp

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

 

//===========================================

 

//inkluderar din fil med klassdeklarationer

// ” ” ingen sökväg = samma katalog*/

#include "testklass.h"

#include <cstdlib>

#include <iostream>

 

using namespace std;

 

int main()

{

    testklass minklass;

   

    minklass.set_a_b_c();  

cout<<endl;

 

    minklass.get_a_b_c();   

cout<<endl;

 

testklassII mintestklassII;

 

mintestklassII.set_a();

mintestklassII.get_a();

cout<<endl;

 

 system("PAUSE");

    return EXIT_SUCCESS;

 

}

 

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