Więcej o klasach 97
Innym sposobem uzyskania funkcji typu inline jest umieszczenie definicji funkcji bezpośrednio w deklaracji klasy. Taka definicja spowoduje automatyczne stworzenie funkcji typu inline. Oto przykład:
class Kot {
public:
int PobierzWage() { return jegoWaga; } // inline
void UstawWage(int waga);
};
Zwróć uwagę na definicję funkcji PobierzWage (). Treść funkcji rozpoczyna się bezpośrednio po jej deklaracji (po nawiasach w nagłówku nie stawiamy średnika). Podobnie jak w przypadku zwykłej funkcji, definicja rozpoczyna się od klamry otwierającej i kończy się klamrą zamykającą. Również białe znaki nie wpływają na interpretację. Równie dobrze deklaracja może wyglądać tak:
class Kot
public:
int PobierzWage()
return jegoWaga;
} // inline
void UstawWage(int waga);
Zamieszczone niżej listingi 7.1. i 7.2. tworzą na nowo klasę Kot. W osobnych plikach umieszczamy deklarację (plik KOT.HPP) i implementację (plik KOT.CPP). W listingu 7.1. zamieniliśmy funkcje wewnętrzne na inline.
Listing 7.1. Deklaracja klasy Kot w pliku KOT. HPP.
1
2
3
4
5
6
7
8
inline !
#include <iostream.h> class Kot
public:
Kot (int wiekPocz);
~Kot() ;
int PobierzWiek() { return jegoWiek; } // inline
void UstawWiek(int wiek) { jegoWiek = wiek; ) //
i
9:
10:
11:
12: ) ;
void Miaucz() ( cout « "Miau. \n"; ) private:
int jegoWiek;
// inline
i
Innym sposobem uzyskania funkcji typu inline jest umieszczenie definicji funkcji bezpośrednio w deklaracji klasy. Taka definicja spowoduje automatyczne stworzenie funkcji typu inline. Oto przykład:
class Kot
public:
int PobierzWageO 1 return jegoWaga; ) // inline
void UstawWage(int waga);
);
Zwróć uwagę na definicję funkcji PobierzWage (). Treść funkcji rozpoczyna się bezpośrednio po jej deklaracji (po nawiasach w nagłówku nie stawiamy średnika). Podobnie jak w przypadku zwykłej funkcji, definicja rozpoczyna się od klamry otwierającej i kończy się klamrą zamykającą. Również białe znaki nie wpływają na interpretację. Równie dobrze deklaracja może wyglądać tak:
class Kot
public:
int PobierzWageO
<
re turn j egoWaga;
) // inline
void UstawWage(int waga);
);
Zamieszczone niżej listingi 7.1. i 7.2. tworzą na nowo klasę Kot. W osobnych plikach umieszczamy deklarację (plik KOT.HPP) i implementację (plik KOT.CPP). W listingu 7.1. zamieniliśmy funkcje wewnętrzne na inline.
Listing 7.1. Deklaracja klasy Kot w pliku KOT. HPP.
1: ttinclude ciostream.h>
2: class Kot
3: {
4: public:
5: Kot (int wiekPocz);
6: ~Kot();
7: int PobierzWiek () { return jegoWiek; ) // inline !
8: void UstawWiek(int wiek) { jegoWiek = wiek; ) //
inline !
9: void Miaucz() ( cout « "Miau. \n"; ) // inline !
10: private:
11: int jegoWiek;
12: };