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 betyder ”if 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;
}
//********************************************